1

我有一个计算器,它在我的选择中使用 Bootstrap 以及这个扩展: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 不会触发 change 事件。如果值不同,它可以正常工作。我以为我可以制作自己的事件监听器,测试文本字符串,但我该怎么做呢?或者有人有更好的主意吗?

4

2 回答 2

1

您可以使用的解决方法是使用数据属性。将您的选择更改为如下所示

<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');
});

这样就触发了change事件,只需要通过data属性获取值即可。

于 2013-06-11T10:41:27.097 回答
0

您可以绑定到 'blur' 事件以在选择失去焦点时检查它的值(如果他们单击它会发生这种情况 - 给它焦点 - 然后随后单击 else where (或 tab in 和 tab away))。

于 2013-06-11T10:43:06.450 回答