Chosen: javascriptで選択した値を設定する

作成日 2011年07月21日  ·  25コメント  ·  ソース: harvesthq/chosen

javascriptで選択した値を設定することはできません。 selected()がクラスsingle_examplechzn_o_0を<li>に追加しますが、これはオプション値との共通点はなく、choose()の後に#single_exampleは存在しません。 これが機能する方法はありますか?

これは機能します:
`` `


$( "#single_example")。val(2);

`` `` ``

これは機能しません:
`` `
`` `` ``

$("#single_example").val(2);

最も参考になるコメント

@stofに感謝します、それはトリックをしました。

参考までに、jQueryを使用して値を動的に変更します。

$("#single_example").val(2).trigger('chosen:updated');

全てのコメント25件

私のブランチ(https://github.com/tompaton/chosen)を試してみてください。これで修正される可能性があります。

残念ながら、それは私にはうまくいきません。

変更イベントを手動でトリガーする必要があります(私が知る限り、これを回避する方法はありません。これは迷惑です...):

$("#single_example").val(2).trigger("change");

ありがとう、これは完璧に動作します!

エラーで表示する例を実行しましたが、$( "#single_example")。val(2).trigger( "change");を実行すると
、リスト(選択した値)に変更はありません。
プラグインの最後のバージョンを使用しています。
挨拶

https://github.com/tompaton/chosenを使用する必要があります。これはharvesthqブランチにマージされていません。

はい、トンパトンブランチを使用した後はチャームのように機能します。

$( "#single_example1")。val(2);
$( "#single_example2")。val(3)
..。
$( "#single_example3")。val(20);
$('。chosen')。trigger('change');

こんにちはみんな、私はトンパトンのフォーク(https://github.com/tompaton/chosen)をダウンロードしました:
$( "#single_example")。val(2).trigger( "change");
これは魅力のように機能します
アドバイスのためのThxs:-)

私はclearall関数を書き込もうとしていますが、tompatonブランチを使用しても、これは機能しないようです。
$( "。state_list")。val( "")。trigger( "change");

空のオプションがあります:
`` `

Is there a way to totally remove all selections? Also how about selecting all?

申し訳ありませんが、私のパッチは複数選択ボックスに対応していませんでした。
かなり多くのコード..。

2011年8月12日金曜日午前1時50分、MB34
[email protected]
書きました:

私はclearall関数を書き込もうとしていますが、tompatonブランチを使用しても、これは機能しないようです。
$( "。state_list")。val( "")。trigger( "change");

空のオプションがあります:

すべての選択を完全に削除する方法はありますか? また、すべてを選択するのはどうですか?

このメールに直接返信するか、GitHubで表示してください。
https://github.com/harvesthq/chosen/issues/31#issuecomment -1782941

それで、プラグインにパッチを当てずにこれを行う方法はありますか?

さて、選択した内部がどのように機能するかに固執したいのであれば、パッチを適用せずに複数選択からすべての選択をクリアすることが可能です。

// replace {select_id} below with the id of your <select> tag
$('#{select_id}_chzn .chzn-choices .search-choice a').click();

これは、複数選択で選択された各アイテムの削除「x」をクリックすることをシミュレートします。

すべてのオプションを選択することも可能です(ドロップダウンで使用可能なすべてのオプションをクリックすることをシミュレートすることにより)。

$('#{select_id}_chzn .chzn-drop li').click();

これらのニーズは、実際には、選択したプラグインにメソッドとして追加する必要があります。

わかりました、これをすべて明確にするために:

@pfillerは、これは、harvesthq/chosenブランチで次を使用してすべて可能であると指摘しています。

$("#single_example").val(2).trigger("liszt:updated");

コード/ドキュメントを十分に読んでいないのは残念です。 これは、複数の選択ボックスでも正しく機能します。

複数選択からすべてのオプションをクリアするには、次の方法で実行できます。

$('#{select_id}').val([]).trigger('liszt:updated');

私の前のコメントはまだすべてのオプションを選択する唯一の方法だと思います。

_注_これに関して、私のフォークはharvesthq / selectedと同じになっているので、それを使用して.trigger('change')のものを無視してください。

Prototypeアダプターを使用している可能性がある場合は、次のように同じことを行うことができます。

  $(select_box_id).select('option[selected]').each(function(el){el.selected = false});
  Event.fire($(select_box_id), 'liszt:updated')

ちょっと不格好ですが、動作します。 このレミーを行うためのより良い方法がある場合は知っています

私が使用する解決策は、元のソース選択で選択したオプションを変更してから、Chosenを再構築することです。

select.val(value);
select.chosen('destroy');
select.chosen({});

@roelvanduijnhoven @tompatonコメントで与えられた(またはプロトタイプバージョンの場合は@RyanSによって与えられた)ソリューションは、既存の選択された要素を破棄して新しいものを構築するのではなく更新するため、より優れています

どういうわけか、 @tompatonの解決策は私の場合はうまくいかなかったようです。 でもあまり力を入れていなかったので、何かおかしなことをしたのかもしれません。

@roelvanduijnhovenバージョン1.0を使用している場合、イベントはchosen:updatedなります

@stofに感謝します、それはトリックをしました。

参考までに、jQueryを使用して値を動的に変更します。

$("#single_example").val(2).trigger('chosen:updated');

参考までに、これは文書化されています:http: //harvesthq.github.io/chosen/#change -update-events

申し訳ありませんが@roelvanduijnhoven 、私のコメントは別の問題を対象としていました。削除しました。 (Gmailはメールをグループ化していたので、返信してコメントを投稿しました)

どうもありがとう! このスレッドは私の一日を救った!
最後に、デフォルト値で複数選択します:)

こんにちは、私は新しいjqueryで、ダウンロードしたばかりです。 選択した複数の値を設定/取得する方法に戸惑っています。

私がやろうとしているのは、ページの読み込み時に動的にオプションを作成してから、デフォルトを選択する必要があることです

ありがとう
グリ

gpdhillion:
これを使って
$('。chosen-select')。val([1,2,3])。trigger('chosen:updated');

$( "#id")。val(id_value);
$( "#id")。chosen('destroy');
$( "#id")。chosen({});

このページは役に立ちましたか?
0 / 5 - 0 評価