选择框单击功能不再检测到引导程序

时间:2016-10-11 03:57:01

标签: jquery html css twitter-bootstrap

所以我使用bootstrap select,但是,当我添加class="selectpicker"时,任何非多选框都会失去检测点击功能的能力。

我有这个功能:

$("select").click(function()
{
    if (this.id.match(/rest/g))
    {
        return;
    }
    name = this.id;
    console.log(name);

    select_id = name.replace("_free", "");
    radio = select_id + '_radio';
    //$('input:radio[name='+radio+']:checked').prop('checked', false).checkboxradio("refresh");
    document.getElementById(select_id + "_radio3").checked = true;
}

这样做是确定单击了哪个选择,然后更改选中的单选按钮。但是,在添加selectpicker后,只有multiple的用户仍然会更改单选按钮。

知道怎么解决这个问题吗?

https://jsfiddle.net/34ksL2h5/3/

(删除class="selectpicker",您就会看到问题)

2 个答案:

答案 0 :(得分:0)

<div>
  <input id="select1_radio" type="radio" name="radio1">
  <select id="select1" class="selectpicker">
    <option>some option 1</option>
    <option>some option 2</option>
    <option>some option 3</option>
  </select>
</div>
<div>
  <input id="select2_radio" type="radio" name="radio1">
  <select id="select2" class="selectpicker">
    <option>some option 1</option>
    <option>some option 2</option>
    <option>some option 3</option>
  </select>
</div>

脚本。对不起,它是原生JS,因为我不知道如何使用jQuery。希望有人为你翻译。

var sel = document.querySelectorAll('.bootstrap-select');

[].forEach.call(sel, function(elem){
    elem.onclick = function(){
    this.previousElementSibling.checked = true;
  }
});

// $(".selectpicker").selectpicker();

工作小提琴:https://jsfiddle.net/34ksL2h5/10/

触发器是.bootstrap-select。希望它有所帮助!

答案 1 :(得分:0)

与Herma Luna相似,我决定去找div而不是boostrap-select

因此,使用下面的代码我可以获得id。

$('div.bootstrap-select').on('click', function(){       
    console.log($(this).find("select").attr("id"));
});