我想使用单选按钮选择要在表单上提交的字段。 我正在使用这个脚本:
<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上不会发生。
那么,出了什么问题?
答案 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
值。