從html選擇處理「更改」事件時,我想獲取最後選擇的值/索引。在更改事件之前獲取html select的值
例如,
$('#mySelect').live('change', function(event){
var idx = $(this).prop('selectedIndex');
});
idx保留更改後的值事件觸發器。我需要事件觸發前選擇的值。
從html選擇處理「更改」事件時,我想獲取最後選擇的值/索引。在更改事件之前獲取html select的值
例如,
$('#mySelect').live('change', function(event){
var idx = $(this).prop('selectedIndex');
});
idx保留更改後的值事件觸發器。我需要事件觸發前選擇的值。
嘗試是這樣的,如果你有多個選擇:
var select = $('#mySelect');
select
.data("lastIndex", select[0].selectedIndex)
.live('change', function(event){
var idx = this.selectedIndex;
var prevIdx = $(this).data("lastIndex");
// Alert prev and new index
alert(prevIds + " - " + idx);
// Alert prev value and new value
alert($(this).find("option").eq(prevIdx) + " - " + $(this).find("option").eq(idx));
// Set new index as old index
$(this).data("lastIndex", idx);
});
我會保存以前的值在不同的變量和手動更新
// what is the value when <select> was just loaded?
var previous_value = $('#mySelect').prop('selectedIndex');
$('#mySelect').live('change', function(event){
var idx = $(this).prop('selectedIndex');
// at this point previous_value has the previous value and idx - current
// ... do something here ...
// updating previous_value for the next time
previous_value = idx;
});
您可以使用vairable作用域的事件處理函數的外部保持價值的軌道,就像這樣:
var mySelect = $('#mySelect'),
previousValue = mySelect.val();
mySelect.live('change', function() {
alert(mySelect.val()); // alerts current value
alert(previousValue); // alerts previous value
previousValue = mySelect.val(); // save so it can be referenced next time
});
可以你可以試試這個 -
var lastSeelctedlist = "";
$('#mySelect').live('change', function(event){
lastSeelctedlist = $(this).val();
// you rest of code
});
如果我得到你的權利那麼這裏是純JavaScript的解決方案
function getLastSelected(e)
{
var s = e;
var optionsSelected = [];
for(var i =0;i<s.options.length;i++)
{
if(s.options[i].selected == true)
{
optionsSelected[optionsSelected.length] = {Value : s.options[i].value,Text:s.options[i].text,Index : i};
}
}
var lastSelected =((optionsSelected.length >0)?(optionsSelected[optionsSelected.length - 1]):(null)) ;
return lastSelected; // or do what you have to do here
//put it in custom attribute or what ever
}
這個函數的參數是選擇標籤ID和返回的對象是包含3個屬性 值,文本,指數
調用它onchange事件
onchange = "getLastSelected(this)"
Regards
這是一個很好的解決方案,因爲我沒有控制在我的頁面中存在多少選擇,使得使用多個變量不是一個合適的解決方案。 –