引导程序中的jQuery组合框onchange事件无法正常工作

时间:2014-10-31 05:08:11

标签: jquery twitter-bootstrap jquery-ui combobox onchange

我正在使用THIS插件来实现combobox。另外我需要获取选择列表的值,所以我添加了以下代码:

$(document).ready(function(){
      $('.combobox').combobox({
          select: function (event, ui) { 
            alert("the select event has fired!"); 
        } 
      });
  });

stackoverflow solution。但在我的情况下,没有显示警报!如何获取所选的选项值?

JSFiddle

3 个答案:

答案 0 :(得分:3)

检查插件homepage,我没有找到任何名为select的选项。

您可以在创建的文本字段中添加更改事件,然后选择值。

 $("input[type='text'].combobox").on("change", function () {
      alert($(this).val());
 });

演示fiddle

答案 1 :(得分:0)

那行得通,但是会给您文本而不是值,如果您激活了clearIfNoMatch选项,也不会给您想要的内容。

您可以尝试以下方法:

$("div.combobox-container input[type=hidden]").on("change", function () {

      console.log($(this).val());
});

答案 2 :(得分:0)

我遇到了同样的问题,并设法通过侦听select元素而非输入元素上的change事件来解决它。

问题是该插件将插入隐藏的输入,并为其指定一个最初设置为select元素的名称。 在侦听隐藏输入上的更改事件时遇到了问题,但对于select来说却是一样的。 因此,代替$("input[name='OriginalSelectName']").on('change', ...)可以使父容器易于引用并附加到选择$("div[name='SelectDiv'] select").on('change', ...)

<div name="SelectDiv">
    <div class="combobox-container">
        <input type="hidden" name="OriginalSelectName" value="">
        ...
    </div>

    <select class="combobox form-control" style="display: none;">
        <option value="" selected="selected">Nothing</option>
            <option value="e4d4a3bc-e2f7-4494-9ba6-192cff81b10d">Product A</option>
            <option value="d20e202a-041f-4788-9313-3a649f9bb313">Product B</option>
    </select>
</div>