ラジオボタンのセットが選択されているかどうかを確認しようとしています。しかし、事実の後でラジオが選択されても更新されないようです。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
は依然として0より大きい値を返します。
[UPDATE]
問題は、私がゼロより大きい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より大きくないでしょうか? 1つのラジオボタンだけが正しいかチェックされますか?つまり、チェックされていないラジオボタンごとにカウンタが増加します。コードで何をしたいのですか? –
少なくとも1つのラジオボタンがチェックされていることを確認します。私のロジックが故障している可能性がありますが、これは動作していませんが、addr_chkd> 0の場合、ボタンはチェックされていません。 – RHPT