1

選択したプラグインを使用して、複数の選択入力フィールドを作成しています。ここで例を参照してください: http://harvesthq.github.io/chosen/#multiple-select

デフォルトの動作では、すでに選択されているオプションは無効になります。上記の例で「アフガニスタン」を選択すると、ドロップダウン メニューでグレー表示され、2 回目の選択ができなくなります。

同じオプションを複数回選択できるようにする必要があります。これを可能にするプラグインまたは手動オーバーライドに追加できる設定はありますか?

4

3 に答える 3

2

私は、同じアイテムを複数回選択できるようにし、それらの複数のエントリを POST 変数としてサーバーに送信することもできる、choose のバージョンを作成しました。これを行う方法は次のとおりです(かなり簡単だと思います):

(ヒント: これらの行を見つけるには、choose.jquery.js の検索機能を使用します)


変化する:

this.is_multiple = this.form_field.multiple;

に:

this.is_multiple = this.form_field.multiple;
this.allows_duplicates = this.options.allow_duplicates;

変化する:

classes.push("result-selected");

に:

if (this.allows_duplicates) {
  classes.push("active-result");
} else {
  classes.push("result-selected");
}

変化する:

this.form_field.options[item.options_index].selected = true;

に:

if (this.allows_duplicates && this.form_field.options[item.options_index].selected == true) {
  $('<input>').attr({type:'hidden',name:this.form_field.name,value:this.form_field.options[item.options_index].value}).appendTo($(this.form_field).parent());
} else {
  this.form_field.options[item.options_index].selected = true;
}

次に、 を呼び出すときchosen()に、必ず次のallows_duplicatesオプションを含めてください。

$("mySelect").chosen({allow_duplicates: true})
于 2016-07-09T23:07:00.027 に答える
0

回避策として、各選択 (選択イベント) またはポップアップが開いている間に以下のコードを使用します。

$(".chosen-results .result-selected").addClass("active-result").removeClass("result-selected");

上記のコードは、結果選択クラスを削除し、li アイテムにアクティブ結果クラスを追加します。そのため、選択された各アイテムはアクティブな結果と見なされ、そのアイテムを再度選択できるようになります。

于 2014-01-23T15:40:42.727 に答える