【问题标题】:check whether a checkbox in bootstrap-multiselect has been checked检查是否已检查引导多选中的复选框
【发布时间】:2015-11-08 01:27:59
【问题描述】:

我想在 javascript 中检查 bootstrap-multiselect 中的复选框是否已被选中。通常复选框是使用标签和 type="checkbox" 属性创建的。在那种情况下,我可以使用

document.getElementById(id).checked

测试复选框是否被选中。但是在 bootstrap-multiselect 中,使用了标签。 这是我的html代码:

<select class="demo" multiple="multiple">
    <option id="test_id" value="test_value">test_value</option>
</select>

如果我使用函数 document.getElementById(id).checked,我得到一个“未定义”而不是真或假? 在这种情况下,测试选中或未选中框的正确方法是什么? 谢谢 卡尔

【问题讨论】:

  • id 在一个选项中......这是新的
  • 你试过document.getElementById(id).selected吗?

标签: javascript jquery html twitter-bootstrap


【解决方案1】:

只需将所有选定的值推入一个数组并根据需要操作信息。

HTML

<select class="demo" multiple="multiple" >
  <option id="test_id1" value="test_value1">test_value1</option>
  <option id="test_id2" value="test_value2">test_value2</option>
  <option id="test_id3" value="test_value3">test_value3</option>
  <option id="test_id4" value="test_value4">test_value4</option>
</select>
<div id='selectedVals'></div>

jQuery

$(".demo").change(function() {
  var allSelected = new Array();
  $(".demo option:selected").each(function(){
    allSelected.push(this.value);
  });
  $('#selectedVals').html(allSelected)
});

https://jsfiddle.net/wa4mjmaj/

【讨论】:

  • 是的,这当然可以,但是是否还有类似于 checked 属性的东西?一个布尔值会很棒,即使我已经用你上面的解决方案解决了我的问题......
  • 一般来说,checkbox 类型的输入很少出现在 select 元素中。如果你真的想拥有这些元素,你最好的方法是模仿select 的行为,用某种类型的下拉列表来容纳你所有的checkbox。看看这个代码示例codepen.io/ElmahdiMahmoud/pen/hlmri
【解决方案2】:

这是一个函数,它返回是否使用其 id 检查特定选项:

function isChecked(optionId) {
    return $(".demo > #" + optionId).get(0).selected;
}

【讨论】:

    【解决方案3】:

    这是一个使用 JQuery 的小提琴。如果您使用的是 Bootstrap,我假设您使用的是 JQuery。这些是您拥有的选择选项,而不是复选框,顺便说一句;)

    https://jsfiddle.net/d1L8uott/

    代码:

    <select class="demo" multiple="multiple" id="mySelect">
     <option id="test_id1" value="test_value">test_value1</option>
     <option id="test_id2" value="test_value">test_value2</option>
     <option id="test_id3" value="test_value">test_value3</option>
    </select>
    
    $('#mySelect').change(function(){
      alert($('#mySelect option:selected').text());
    });
    

    【讨论】:

      猜你喜欢
      • 2021-02-05
      • 2021-02-05
      • 1970-01-01
      • 1970-01-01
      • 2018-08-31
      • 1970-01-01
      • 1970-01-01
      • 2018-09-23
      • 2016-04-22
      相关资源
      最近更新 更多