javascript单选按钮无法在IE7和IE8上运行

时间:2014-01-09 14:17:33

标签: javascript html forms internet-explorer-8 internet-explorer-7

我想使用单选按钮选择要在表单上提交的字段。 我正在使用这个脚本:

<script>
    function validateForm(){
        var x=document.forms["preinsert"]["RIF"].value;
        var y=document.forms["preinsert"]["CTP"].value;
        var xd=document.forms["preinsert"]["RIF"].disabled;
        var yd=document.forms["preinsert"]["CTP"].disabled;
        if (xd == false){
            if (x==null || x==""){
                alert("The first field can't be empty.");
                return false;
            }
        }
        else if (yd == false){
            if (y==null || y==""){
                alert("The second field can't be empty.");
                return false;
            }
        }
    }
</script>

关于此HTML代码:

<form name="preinsert" action="/ServletPreInsert" method="post" onsubmit="return validateForm()">
    <table>
        <tr>
            <td>
                <input type="radio" name="rad" checked="checked" onclick="RIF.disabled=false; CTP.disabled=true;"/>
                <select name="RIF1" class="right-select">
                    <option selected="selected">NB</option>
                    <option>LTI</option>
                </select>
            </td>
            <td>
                <input id="RIF" name="RIF" class="fixed-input" type="text">
            </td>
        </tr>
        <tr>
            <td>
                <input type="radio" name="rad" onclick="RIF.disabled=true; CTP.disabled=false;"/>Counterparty
            </td>
            <td>
                <select id="CTP" name="CTP" class="fixed-select" disabled>
                    <option>Option_1</option>
                    <option>Option_2</option>
                    <option>Option_3</option>
                </select>
            </td>
        </tr>
    </table>
    </br></br>
    <p align="right"><input type="submit" value="Insert"></p>
</form>

我注意到的是:如果我在IE7 / 8等浏览器上使用此代码,当我选择第二个单选按钮,一个选项然后提交我的表单时,会出现来自javascript的错误消息:“第二个字段不能为空。“ 但是,如果我在第一个字段中键入内容,并选择了第一个单选按钮,它就可以正常工作。

这种“疯狂”的事情在Firefox 26.0上不会发生。

那么,出了什么问题?

1 个答案:

答案 0 :(得分:0)

如果你想在IE7 / 8上使用它,你必须改变它:

<select id="CTP" name="CTP" class="fixed-select" disabled>
    <option>Option_1</option>
    <option>Option_2</option>
    <option>Option_3</option>
</select>

进入这个:

<select id="CTP" name="CTP" class="fixed-select" disabled>
    <option value="Option_1">Option_1</option>
    <option value="Option_2">Option_2</option>
    <option value="Option_3">Option_3</option>
</select>

因为如果未设置value参数,它将始终显示为null值。