检测选择框选择的安全方法

时间:2013-11-25 19:11:34

标签: javascript jquery onchange

我被要求根据用户在选择框中选择的选项来刷新页面(及其数据)。

我知道使用onChange事件是检测用户在selectbox中更改其选择的标准方法,我已经做了很多:

$("#provider").change(function(){

    var selectedprovider = $('#provider').val();

     //... Do something

});

我还看到过某些浏览器(IE)在使用鼠标滚轮或箭头键与选择框进行交互时触发更改事件的情况,而不是更改选项选择的实际事件。

有没有更好的方法来处理这种情况?例如,检查所选选项的数组索引是否已更改?不确定是否有特定事件。

我认为最好只在选择框旁边添加一个提交按钮,然后停止尝试依赖onChange事件选择框。

您是如何处理这种情况的?

1 个答案:

答案 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());
        }
    });
});