jQuery - change在使用bootstrap时不会触发

jQuery - change doesn't fire when using bootstrap

本文关键字:bootstrap change jQuery      更新时间:2023-09-26

我有一个计算器,使用引导我的选择随着这个扩展:http://silviomoreto.github.io/bootstrap-select/

我在选项中有不同的文本,但值可以是相同的,因为它代表所选项目的价格。

<select>
  <option value="0">Red</option>
  <option value="0.23">Green</option>
  <option value="0.23">Blue</option>
</select>

我的问题是,jQuery不触发的变化事件,当值是相同的。如果值不同,它可以正常工作。我想我可以做我自己的eventlistener,测试textstring,但我怎么做呢?或者有人有更好的主意吗?

您可以使用的一种解决方法是使用数据属性。把你的选择改成如下的

<select>
  <option data-value="0" value='Red'>Red</option>
  <option data-value="0.23" value='Green'>Green</option>
  <option data-value="0.23" value='Blue'>Blue</option>
</select>

然后绑定更改

$('select').on('change', function(){
    var val = $(this).data('value');
});

这样,就触发了更改事件,您只需要通过data属性获取值。

你可以绑定到'blur'事件来检查选择的值,当它失去焦点时(这将发生,如果他们点击它-给它焦点-然后随后点击其他地方(或tab in,并tab away))。