2011-07-06 20 views
2

我想使用jquery或javascript获取之前选定的下拉控件的值。 我如何得到这个? 我试图与prev()选择的jQuery但未能如何使用jquery或javascript获取Dropdown的previuos项目

$(ddlStatus).find("option").prev(":selected").attr("text"); 

如果ddlStatus有一个像A,B,C,d,E项当选择页面加载B,而当用户更改项{比方说) Ë然后我想以前选择的即B.

回答

2

你可以做这样的(未优化,但工程):

$(document).ready(function(){ 
    $(ddl).data('lastSelected', $(ddl).val()); 
}); 
$(ddlstatus).change(function(){ 
    var lastSelected = $(this).data('lastSelected'); 
    $(this).data('prevLastSelected', lastSelected); 
    $(this).data('lastSelected', $(this).val()); 
}); 

以后,才知道先前选择的任何时候,你只是做:

var previouslySelectedValue = $(ddl).data('prevLastSelected'); 

这段代码是国家在元素保存不使用全局变量什么是好,因此它可以被应用到任意数量的选择框

希望这有助于。干杯

+0

东西大致像这应该为你做它。 –

3

每当做出选择,保存的价值。在新的选择上,您将保存旧值,直到您覆盖它为止。

你不能做到这一点dorectly,因为你是历史的信息后 - 上一个是关于排序不是时机。

+0

保存价值,全局变量,也保存它的onLoad – firegnom

+0

正确的,我也要一个变量保存历史 – Atticus

+0

这是更好地保存在元素本身的价值,并避免全局变量。我在回答中做了 –

1

这里是一个例子:

HTML:

<select id="myselect"> 
    <option value="one" selected="selected">one</option> 
    <option value="two">two</option> 
    <option value="three">three</option> 
</select> 

JQUERY:

var prev = null; //global 
var cur = $('#myselect').val();//global 
var flag = true;// global 

$('#myselect').change(function() { 
    if (flag) { 
     prev = cur; 
     cur = $(this).val(); 
     flag = false; 
    } else { 
     prev = cur; 
     cur = $(this).val(); 
    } 
}); 
+0

@乌拉斯嗨朋友,为什么我低调?请解释 – thecodeparadox

+0

你的回答让我和我投+1。也许一些其他人downvotedü – Tuscan

+0

+1有用的答案 –

相关问题