簡體   English   中英

此JavaScript代碼有什么問題?

[英]What is wrong with this JavaScript code?

我有兩個復選框,分別為check1和check2。 如果要檢查另一個,我希望其中一個被禁用。 這是我所做的:

var male = document.getElementById("check1");
var female = document.getElementById("check2");

male.disabled = (female.checked == true) ? true : false;
female.disabled = (male.checked == true) ? true : false;

它根本不起作用。 語法正確嗎? 我做錯了什么?

您需要onchange事件,並且您的代碼也可以整理。

var male = document.getElementById("check1"),
    female = document.getElementById("check2");

male.onchange = function() {
    female.disabled = male.checked;
};

female.onchange = function() {
    male.disabled = female.checked;
};

jsFiddle

另外,您不應該使用無線電輸入嗎?

disabled根本不應該設置禁用以便禁用AFAIK,任何值都是“ truthy”

執行.removeAttribute('disabled')使其不被禁用。

例如,您需要更改另一個復選框的狀態。 男性改變了-女性改變了,反之亦然。

function maleOnClick(){
    female.checked= !this.checked;
}
function femaleOnClick(){
    male.checked= !this.checked;
}

無論如何,為什么不使用type="radio"

嘗試:

 male.setAttribute('disabled', 'disabled'); //set
 male.setAttribute('disabled', ''); //clear

所以:

male.setAttribute = (female.checked == true) ? 'disabled': '';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM