1

jQuery Multiselect プラグインを使用し、選択が行われたかどうかを確認する必要があります (ユーザーは何も選択せずに選択ボックスを開いたり閉じたりできます)。このプラグインには、選択/チェックされたオプションの配列を取得するために使用する「閉じる」メソッドがあります。

var checkedVals = [];
checkedVals = $('#'+which).val();   // Get Array of checked options
alert(checkedVals.length);      // See if it's empty

オプションが選択/チェックされている場合は正常に動作しますが (値が返されていることはわかっています)、何も選択されていない場合、Firebug は checkedVals が null であることを示すエラーをスローします。空の配列は 0 にする必要があります... null ではありません。そして、pls...「null」をトラップしようとする議論には入らないでください。

助けてくれてありがとう

4

2 に答える 2

3

.val()のjQueryドキュメントから:

要素の場合<select multiple="multiple">、.val()メソッドは、選択された各オプションを含む配列を返します。オプションが選択されていない場合は、nullを返します。

したがって、 nullを返す.val()可能性のある完全に合理的な可能性のチェックを追加する必要があることを除いて、期待どおりに動作し、コードは正しいです。.val()

于 2012-08-28T13:39:25.920 に答える
3

このように書くと、常に配列ができます

var checkedVals = $('#'+which).val() || [];
alert(checkedVals.length);      

チェックされたValsを.val()値に設定するか、null(falsey)の場合は空の配列に設定します。

于 2012-08-28T13:40:37.830 に答える