javascript 在更改事件上查找下拉列表的先前值
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/16978287/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Find previous value of drop down list on change event
提问by Tech
I have drop down list declared like :
我有下拉列表声明如下:
<asp:DropDownList ID="myDropDown" width="300" CssClass="textboxda"
AutoPostBack="True" runat="server" onmousewheel="return false;" />
Drop down list change method
下拉列表更改方法
myDropDown.Attributes.Add("OnChange", "return OnChange();");
function OnChange()
{
var $j = jQuery.noConflict();
var sel = $j(this).prevAll("#myDropDown:first"),
val = sel.val(),
text = sel.find(':selected').text();
alert(text);
}
I am populating this drop down dynamically.
我正在动态填充此下拉列表。
I am fetching the last/previously selected text of the drop down, but this is not working.
我正在获取下拉列表的最后/以前选择的文本,但这不起作用。
Please suggest.
请建议。
采纳答案by sangram parmar
myDropDown.Attributes.Add("OnChange", "return OnChange(this);");
after that you can put another attribute for current selected item
之后,您可以为当前选定的项目添加另一个属性
myDropDown.Attributes.Add("previous", "your default selected value");
after that your function like this
之后你的功能是这样的
function OnChange(args)
{
var previousVal=$(args).attr('previous');
var newVal=$(args).find(':selected');
alert(previousVal);
alert(newVal);
$(args).attr('previous',newVal);
}
回答by cetver
<select id="countries">
<option value="">Select country</option>
<option value="68">Russia</option>
<option value="20">United States</option>
<option value="73">Albania</option>
<option value="143">Algeria</option>
</select>
<script type="text/javascript">
$(document).ready(function(){
$('#countries').on('change', function() {
var $selected = $(this).find(':selected');
console.log('Prev = ', $selected.prev().text());
console.log('Next = ', $selected.next().text());
console.log('Last = ', $(this).find('option:last').text());
});
});
</script>
回答by sangram parmar
try this
试试这个
<select id="countries" previous="" onchange="countrychange(this)">
<option value="">Select country</option>
<option value="68">Russia</option>
<option value="20">United States</option>
<option value="73">Albania</option>
<option value="143">Algeria</option>
</select>
<script type="text/javascript">
function countrychange(args){
var previousVal=$(args).attr('previous');
var newVal=$(args).find(':selected');
alert(previousVal);
alert(newVal);
$(args).attr('previous',newVal);
}
</script>
回答by yeyene
You want jquery? DEMO http://jsfiddle.net/yeyene/3vRs9/
你想要 jquery 吗?演示http://jsfiddle.net/yeyene/3vRs9/
JQUERY
查询
$(document).ready(function() {
$("#mySelect").on('change', function() {
alert('Changed selected: '+$('#mySelect option:selected').val());
});
});