0
我想使用單選按鈕選擇要在我的表單上提交的字段。 我使用這個腳本:javascript單選按鈕無法在IE7和IE8上工作
<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上不會發生。
那麼,怎麼了?
說真的,你使用窗口上的全局名稱來訪問元素,並將它們設置爲禁用onclick等。它對我來說看起來真的很拗口嗎? – adeneo
你有什麼建議呢?謝謝。 – abierto
我建議適當的事件處理程序和選擇器。 – adeneo