2012-02-13 7 views
6

jquery multiselectウィジェットを使用しています。私はすべてが手動でチェックされている場合は、すべてのチェックを外したいと思います。私は、これは動作しません JSFiddle--> Codeマルチセレクションウィジェットのすべてのオプションを選択解除する方法

のサンプルコードを持っています。選択オプションが手動で選択されている場合は、チェックボックスが選択されていないチェックボックスが選択されていないことを確認してください。だから、$this.children("option").not('[selected]').lengthが1で、ui.checkedであるかどうかを確認し、uncheckAll を呼んだが、その後 のコードが正常に動作していれば、$this.children("option").not('[selected]').lengthは最後のコードを選択すると0になる。

私は何が起こっているのか疑問に思って。

+1

私はあなたが求めているものは考えている、とチェック/フィドルにすべてのチェックを外し私のために正常に動作しますか? –

+0

すべて手動で選択してみてください。 multiselectclickイベントがトリガされるはずです。すべてのオプションが選択されていれば、それは起こっていないチェックを解除する必要があります – coool

+0

私はそれらを手動でチェックすると私のために働いています – Vigrond

答えて

12

もここので、あなたが望むソリューションです... documentationをチェックし、selected optionsを取得する方法getCheckedがあります。あなたが選択した要素を再フォーマットするので、あなたのものは機能しません。

$('.multi').multiselect({ 
    click: function(e, ui){ 
    if($(this).multiselect("getChecked").length 
           == $('select.multi > option').length){ 
     $(this).multiselect("uncheckAll");  
    }   
    } 
}); 

フィドル例:http://jsfiddle.net/fG6PT/11/

9
$("#multiselectelement").multiselect("uncheckAll"); 
関連する問題