我被要求根据用户在选择框中选择的选项来刷新页面(及其数据)。
我知道使用onChange事件是检测用户在selectbox中更改其选择的标准方法,我已经做了很多:
$("#provider").change(function(){
var selectedprovider = $('#provider').val();
//... Do something
});
我还看到过某些浏览器(IE)在使用鼠标滚轮或箭头键与选择框进行交互时触发更改事件的情况,而不是更改选项选择的实际事件。
有没有更好的方法来处理这种情况?例如,检查所选选项的数组索引是否已更改?不确定是否有特定事件。
我认为最好只在选择框旁边添加一个提交按钮,然后停止尝试依赖onChange事件选择框。
您是如何处理这种情况的?
答案 0 :(得分:0)
一种方法是检查自您注册事件后该值是否实际发生了变化。这将是确定价值是否不同的一种方法。
以下是一个示例:http://jsfiddle.net/p9v7x/1/
$(function () {
var lastVal = $('#target').val();
$('#target').on('change', function () {
var self = $(this);
if (self.val() === lastVal) {
// don't do anything if it's the same:
console.log('same!');
} else {
// only do your action in this case:
console.log(self.val());
}
});
});