-1

いくつかのボタン (ブートストラップ ボタン) (オンとオフを切り替えることができます) の切り替えに基づいて、選択リスト (JQuery を介して JSON オブジェクトから取り込まれた) の値を変更したいと思います。

これまでのところ、私は次のようなものを持っています:

<div class="btn-group" data-toggle="buttons-checkbox">
<button type="button" class="btn btn-primary" id="Toggle1">Toggle1</button>
<button type="button" class="btn btn-primary" id="Toggle2">Toggle2</button>
<button type="button" class="btn btn-primary" id="Toggle3">Toggel3</button>
</div>

<script>
$.post("/getResults", {"inputParam" : param}, function (data) {
var options = $("#selectlist");
$.each(data, function () { options.append($('<option />').text(this.Name).val(this.id)); });

$(function () {
   $('#toggle1').on('click', function () {
        rePopSelect("toggle1-" + $(this).hasClass('active'));
     });

$('#toggle2').on('click', function () {
        rePopSelect("toggle2-" + $(this).hasClass('active'));
     });

$('#toggle3').on('click', function () {
        rePopSelect("toggle2-" + $(this).hasClass('active'));
     });
</script>

オブジェクトに結果を格納し、トグルの結果を使用して、トグルからのいくつかのフィルター基準に基づいて選択リスト全体を再構築するrePopSelect()方が良いように思われる関数を書くことに行き詰まっていますが、私は$.postこれを行う方法がわからない。

JSON の例を以下に示します。

[{"id":1,"Name":"Blah-Blah","Type":"H"},{"id":2,"Name":"Blah-Blah2","Type":"C"}]

基本的に、toggle1 は H のみを選択する必要があり、toggle2 は C のみを選択する必要があり、toggle3 は S のみを選択する必要があります (この例では...それは何も意味しません)。

トグルの組み合わせを選択できることに注意してください。したがって、toggle1 と toggle2 の両方が選択されている場合、この例ではそれがセット全体になります。

4

1 に答える 1

1

私の答えを修正しました。テストされていませんが、近づくはずです。

何かのようなもの:

<div class="btn-group" data-toggle="buttons-checkbox">
  <button type="button" class="btn btn-primary" id="Toggle1" add="H">Toggle1</button>
  <button type="button" class="btn btn-primary" id="Toggle2" add="C">Toggle2</button>
  <button type="button" class="btn btn-primary" id="Toggle3" add="S">Toggel3</button>
</div>

var options;
$.post("/getResults", {"inputParam" : param}, function (data) {
   options = data;
});


$('.btn').click(function(){

   if ($(this).attr("on")=="true") {
       $(this).attr("on","false");
   } else {
       $(this).attr("on","true");
   }

   $("#selectID option").remove();

   $('button[on=true]').each(function(){
       addkey = $(this).attr("add");
       options.each(function(){
           if (this.Type == addkey) {
              $('#selectID').append('<option value="'+this.id+'">'+this.Name+'</option>');
           }
       });


   });
});
于 2013-11-13T18:17:15.140 に答える