[英]How to enable/disable text field on radio button interaction?
無法使其正常工作。 第一次使用傳遞給函數的變量。 取消選中單選按鈕應禁用表單字段,反之亦然。 lineid 變量將此單選/文本輸入對與其他 10 個輸入對區分開來。
我的代碼:
<script type="text/javascript">
function disablefield(lineid){
if (document.getElementById(lineid).checked == true){
document.dupedit.lineid.disabled = false;
} else {
document.dupedit.lineid.disabled = true;
}
}
</script>
我的 HTML 的子集。
您需要將一個字符串傳遞到您的disablefield
,因此在傳遞時將值放在引號中。類似於:
<input onclick="disablefield('2671997')" />
這是因為document.getElementById
需要一個字符串,而不是 integer。
其次,要啟用/禁用該字段,您需要使用disabled = true;
而不是= 'disabled'
。
document.dupedit.lineid
正在查找名稱為“lineid”的字段,該字段在您的表單中不存在。 我建議給該字段一個id
並再次使用document.getElementById
。
如果要繼續使用name
屬性,則必須改用document.getElementsByName
。 這將返回一個匹配元素的數組(因為多個元素可以共享相同的名稱),但是如果在您的代碼中您知道所討論的元素是唯一具有該名稱的元素,您可以這樣做:
document.getElementsByName(lineid)[0].disabled = true;
您在 function 上缺少右括號:
function disablefield(lineid){
if (document.getElementById(lineid).checked == true){
document.dupedit.lineid='enabled';
}else{
document.dupedit.lineid='disabled';
}
} //<-- here
另外,我可以建議您將this
傳遞給 function。 然后你不必調用getElementById
<input onclick='disablefield(this)' type.....
function disablefield(obj){
if (obj.checked == true){
document.dupedit.lineid='enabled';
}else{
document.dupedit.lineid='disabled';
}
}
我認為您需要重新考慮代碼。
不要在復選框上使用 ID。 最好將該 ID 移動到您要禁用/啟用的文本字段並檢查該字段是否已禁用/啟用,而不是復選框本身
使用更清潔的 JS。
請看一下我為你編譯的 jsFiddle 。 它符合你的預期嗎,丹?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.