2012-05-24 13 views
6

2つのチェックボックスとチェックボックスが1つ以上チェックされているかどうかを示すステータスボックスがあります。jQueryがattrを更新してもチェックボックスが変更イベントを引き起こしていません

また、チェックボックスを切り替える際に機能する「すべて/なし」チェックボックスもありますが、「すべて/なし」チェックボックスを使用するとステータスが更新されないように、各チェックボックスに割り当てられた変更イベントがトリガされません。スクリプトを介して入力要素への変更はonchangeイベントをトリガーしません

http://jsfiddle.net/axl163/Fckvd/1/

答えて

13
function toggleChecked(status) { 
    $(".chkbx").each(function() { 
     $(this).prop("checked", status).change(); // you have to trigger the event 
    }); 
} 

DEMO

+0

ああ!助けてくれてありがとう! –

+0

はい私は知っています=)残念ながら、私は何か答えを受け入れる前に待つ必要がある10分の制限があります。 –

+1

@AllenLiuそれは残念ながら..それは基本的にOPに他の答えを見直すためにいくつかの時間を与えることです..それはちょうど10分です:) –

5

は、ここに私の実装です。

$(this).prop("checked", status).change(); 

、以下のように入力を変更する完全なコード更新中またはあなたはchange()をトリガすることができます

function toggleChecked(status) { 
    $(".chkbx").each(function() { 
     $(this).prop("checked", status).change(); 
    }); 
} 

はまた.prop代わりの.attr

DEMO

を使用
+0

解決策をありがとう=) –

関連する問題