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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-27 06:39:30  来源:igfitidea点击:

Find previous value of drop down list on change event

javascriptjqueryasp.netdrop-down-menu

提问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>

http://jsfiddle.net/S85rY/2/

http://jsfiddle.net/S85rY/2/

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