2013-11-25 31 views
-1

我被要求根據用戶在選擇框中選擇一個選項來刷新頁面(及其數據)。更安全的方式來檢測選擇框選項

我知道,使用onChange事件是檢測用戶在選擇框改變他們的選擇標準的方式,我已經這樣做了很多:

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

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

    //... Do something 

}); 

我也看到情況下,某些瀏覽器(IE)在使用鼠標滾輪或箭頭鍵與選擇框進行交互時觸發更改事件,而不是更改選項選擇的實際事件。

有沒有更好的方法來處理這種情況?例如檢查所選選項的數組索引是否已更改?不確定是否有專門的事件。

我想這可能是最好的,只需在選擇框旁邊添加一個提交按鈕,並停止嘗試依賴於選擇框的onChange事件。

您是如何處理這種情況?

+0

_I've也可見的情況下當鼠標滾輪或箭頭鍵正在使用特定的瀏覽器(IE)火改變事件與selectbox_ __citation相互作用needed__ – Mathletics

+0

我做正是這樣,從來沒有發現任何問題。但如果你對此不滿意,你可以嘗試'onblur'或'onfocusout'。 – melancia

+0

我真的很喜歡這種事情的knockout.js,它不適合所有人,並且爲選擇框添加knockout有點多,因此評論並不是答案,只是需要研究的東西。 – kcar

回答

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()); 
     } 
    }); 
}); 
相關問題