0

select2 を jQuery 1.9.1 および select2 3.3.0 で使用して、かなり基本的なユースケースだと思うものを実装しようとしています... select2 コントロールに、別の select2 コントロールの状態に基づいたオプションを設定したいと考えています。

私は次のものを持っています:

<div>
  <select id="master" name="master">
    <option value=1>a</option>
    <option value=2>b</option>
  </select>
</div>
<div>
  <input type="hidden" id="detail" name="detail" data-placeholder="No options until master chosen">
  </select>

<script src="jquery-1.9.1.js"></script>
<script src="select2-3.3.0/select2.js"></script>
<script>
var a = [];
var b = [];
for (var i = 0; i < 20; i++) {
  a.push({id: i, text: "a" + i});
  b.push({id: i, text: "b"+ i});
}

$(document).ready( function () {
  $("#master").select2().on('change', function() {
    console.log("master changed: " + $("#master").val())
    var right_one = a;
    if($("#master").val() == 2) right_one = b;
    $("#detail").removeClass('select2-offscreen').select2({data:right_one})
    console.log("right_one: " + right_one)
  })


})

編集: この回答は、コントロールが消えていた理由を示しています。この実装に関して質問が残っています:

  1. #masterに初期選択を持たないようにするにはどうすればよいですか?
  2. マスターが選択されたという事実に応答するように、#detail のプレースホルダー テキストを変更するにはどうすればよいですか?
4

2 に答える 2

1

2 番目の #detail の選択はもう機能しません。オプションをクリックすることしかできませんが、いくつかの文字を入力してみると、何が起こるかがわかります。

于 2013-08-23T15:12:49.023 に答える