ajaxを介してdirrert値を再選択しようとすると
関数が初めて正しいことをするとき
num1選択オプションを変更したときに2回以上後
他のnum2selectは、他のオプションvalを選択して更新する必要があります
しかし、私が選択する必要があるすべてのオプションを複数ではないか、誰も選択していません
何が起こるべきか教えてください。
1つの選択要素を変更すると
選択された他のオプションによる選択2の必要性基本的なオプション私はajaxを介して取得します
代わりに何が起こるか教えてください。
機能のためにいくつかを行う{
$( "#one option [value = 1] ')。attr(' selected '、true);
}
$( "#one")。val(1).trigger( "chosen:updated");
1つの値1
それから
機能のためにいくつかを行う{
$( "#one option [value = 1] ')。attr(' selected '、true);
$( "#one option [value = 3] ')。attr(' selected '、true);
}
$( "#one")。val(1).trigger( "chosen:updated");
それから多分私は時々後で何も選択されませんか?
私は私がそうすることを知らないので、それは私が後に必要とした正しいオプションを選択することができますか?
私の貧しい人々の英語でごめんなさい:sob:
私が正しく理解している場合は、ajaxリクエストを使用して選択に新しいオプションを追加し、次にchosen:updated
をトリガーして、Chosenに変更を反映させますか?
問題を示すためにフィドルを設定してください。そうすれば、それがバグなのか、実装の問題なのかを判断できます。
こんにちは空白、
あなたの問題はこれによって解決することができます。
何をしているの:
$( "#one option [value = 1] ')。attr(' selected '、true);
$( "#one option [value = 3] ')。attr(' selected '、true);
$( "#one")。val(1).trigger( "chosen:updated");
何をする必要があるか
$( "#one option [value = 1] ')。attr(' selected '、true);
$( "#one option [value = 3] ')。attr(' selected '、true);
$( "#one")。trigger( "chosen:updated");
更新をトリガーしている間は値を指定しないでください。
JSによる複数選択のオプションの選択状態を更新し、選択を表示するようにChosenを更新しようとした後、同じ問題が発生しました。 私はこの振る舞いを示すフィドルを作りました:
https://jsfiddle.net/5wbzxg27/
3つのボタンがあります:
同じボタンを数回押した(そして更新した)場合でも、各オプションは[選択済み]ボックスに1回だけ表示されます。 スクリプトは正常に実行され、元の選択オプションの選択された状態は正常に変更されますが、選択されたオプションは初めて表示されます。
お役に立てれば。
@cinemazealotは次のコードを試してください:
$("#mySelect").chosen({
placeholder_text_multiple: 'Something',
});
$('button#all').on('click', function() {
$('#mySelect option').attr('selected', false); // selects all
var options = [];
for (var i=0; i < $('#mySelect option').length; i++){
options.push($('#mySelect option')[i].value);
};
$('#mySelect').val(options);
$("#mySelect").trigger("chosen:updated"); // updates chosen
return false; // returns false not to post the surrounding form
});
$('button#first').on('click', function() {
$('#mySelect option').attr('selected', false); // clears all
var options = [];
for (var i=0; i < $('#mySelect optgroup[label="first"] option').length; i++){
options.push($('#mySelect optgroup[label="first"] option')[i].value);
};
$('#mySelect').val(options);
$("#mySelect").trigger("chosen:updated"); // updates chosen
return false; // returns false not to post the surrounding form
});
$('button#second').on('click', function() {
$('#mySelect option').attr('selected', false); // clears all
var options = [];
for (var i=0; i < $('#mySelect optgroup[label="second"] option').length; i++){
options.push($('#mySelect optgroup[label="second"] option')[i].value);
};
$('#mySelect').val(options);
$("#mySelect").trigger("chosen:updated"); // updates chosen
return false; // returns false not to post the surrounding form
});
不格好で大きく見えるかもしれませんが、うまくいくようです
@pashaUSAあなたは最高です! :)遅い反応で申し訳ありませんが、私は他の実行中のプロジェクトを持っていました。 しかし、あなたのソリューションは、それが行うはずのことを実行します。 どうもありがとう! :)
最も参考になるコメント
こんにちは空白、
あなたの問題はこれによって解決することができます。
何をしているの:
$( "#one option [value = 1] ')。attr(' selected '、true);
$( "#one option [value = 3] ')。attr(' selected '、true);
$( "#one")。val(1).trigger( "chosen:updated");
何をする必要があるか
$( "#one option [value = 1] ')。attr(' selected '、true);
$( "#one option [value = 3] ')。attr(' selected '、true);
$( "#one")。trigger( "chosen:updated");
更新をトリガーしている間は値を指定しないでください。