我想檢查一組單選按鈕是否已被選中。但是,如果事後選擇收音機,它似乎不會更新。jQuery .each()不更新
代碼:
$('button#submit').click(function() {
var addr_chkd = 0;
$('input:radio[name="address"]').each(function() {
if (!$(this).attr('checked'))
addr_chkd++
});
});
if (addr_chkd)
// do something
當點擊該按鈕並沒有被選中,代碼的偉大工程。但是,當選擇單選按鈕並單擊按鈕時,addr_chkd
仍會返回大於零的值。
[更新]
的問題是,我檢查addr_chkd
大於零。我應該檢查addr_chkd
是否等於單選按鈕的長度。我對@PPvG的答案做了一個小小的修改,它的確有竅門。
$('button#submit').click(function() {
var radios = $('input:radio[name="address"]');
var num_unchecked = radios.filter(':not(:checked)').length;
if (num_unchecked === radios.length) {
alert('please select a button');
}
});
爲什麼它不會大於0?只有一個單選按鈕將被檢查正確?這意味着計數器將增加每個未選中的單選按鈕。你想要代碼做什麼? –
我想確保至少有一個單選按鈕被選中。我的邏輯可能是錯誤的(以及這不起作用的原因),但是如果addr_chkd> 0,那麼沒有檢查到任何按鈕。 – RHPT