mulitselectでjQueryを使って値を事前に選択
-
19-09-2019 - |
質問
私は、ページの読み込みに存在する値のセットを持っています: 例えば、[1193,1184,2372]。
私はそうのような単一の値を取ることができdropdownchecklistを持っています $( "DDL。")dropdownchecklist()のval(1193);。。。
私はdropdownchecklistを再バインドするとこれは正しく値を選択します。しかし、私はヴァル()メソッドに複数の値を含む私の配列を渡す試してみた、それが値を選択しません。私は一種のこれを期待しました。私は最高の予選択については移動するかどうかはわかりません。
私は次のように適用するフィルタ属性を構築するために、私の配列を反復処理しようとしました: $( "DDL [値* = '1184'] [値* = '9067'] [値* = '14841']")ATTR( '選択'、 '選択')。
が、これは動作しません。 preseletedする唯一の2つのオプションがある場合は特に、私は、DDLのすべてのオプションを反復処理し、それらがオプションの何百もあると一致した場合、選択にそれらを設定する必要がありますする必要はありません、これは賢明な良好なパフォーマンスではありません。
任意のアイデア?
解決
jQueryのセレクタ文字列を作成するために選択されたものの文字列を作成し、.find()関数に入れます:
var str = '';
var arrLength = selectedArray.length;
$.each(selectedArray, function(i){
str += 'option[value*='+selectedArray[i]+']';
if((i+1) != arrLength){
str += ', ';
}
});
$('.ddl').find("option[value*='1184'], option[value*='9067'], option[value*='14841']")
.attr('selected','selected');
また、値のドロップダウンを比較するとき、あなたは選択ではなく、select要素自体にoption
要素を探している、注意します。
他のヒント
私はそれがこの作業を得たが、上記の答えは、良い解決策のように見えます:
$.each(arr, function(i,s)
{
$(ddl_id + ' [value*=\'' + s + '\']').attr('selected','selected');
});
わからない速くなる可能性があるが、これは鉱山少しクリーナーます。
所属していません StackOverflow