在更改事件中查找下拉列表的上一个值

时间:2013-06-07 07:12:29

标签: javascript jquery asp.net drop-down-menu

我的下拉列表声明如下:

    <asp:DropDownList ID="myDropDown" width="300" CssClass="textboxda" 
AutoPostBack="True" runat="server" onmousewheel="return false;" />

下拉列表更改方法

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);
}

我正在动态填充此下拉列表。

我正在获取下拉列表的最后一个/之前选择的文本,但这不起作用。

请建议。

4 个答案:

答案 0 :(得分:2)

myDropDown.Attributes.Add("OnChange", "return OnChange(this);");

之后,您可以为当前所选项目添加另一个属性

myDropDown.Attributes.Add("previous", "your default selected value");

之后你的功能就像这样

function OnChange(args)
{

 var previousVal=$(args).attr('previous');
var newVal=$(args).find(':selected'); 
alert(previousVal);
alert(newVal);
$(args).attr('previous',newVal);
}

答案 1 :(得分:0)

<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/

答案 2 :(得分:0)

试试这个

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

答案 3 :(得分:-1)

你想要jquery吗? DEMO http://jsfiddle.net/yeyene/3vRs9/

JQUERY

$(document).ready(function() {        
    $("#mySelect").on('change', function() {
        alert('Changed selected: '+$('#mySelect option:selected').val());   
    });
});