-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(在这个例子中......这意味着什么)

请注意,可以选择切换的组合,因此如果同时选择了切换 1 和切换 2,则在此示例中将是整个集合。

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 回答