如何获得最后选择的索引

时间:2013-11-27 12:12:03

标签: asp.net jquery-mobile

我需要从下拉控件中获取最后选定值。但我得到错误的信息。

我需要这种控制来允许用户选择他们想要的每个选项。但是我要在获得选定值后验证他们选择的每个选项。

我在webform中部署了一个ASP.NET下拉控件。它在服务器端进行了数据绑定,产生的hmtl如下:

<select name="ddl" id="ddl" multiple="multiple" data-native-menu="false">
    <option value=""></option>
    <option value="1">1800346</option>
    <option value="2">1800353</option>
    <option value="3">1800358</option>
    <option value="4">1800509</option>
    <option value="5">1800514</option>
</select>

这是我的jQuery代码:它会提醒selectedIndex和所选文本。

$("#ddl").on("change", function () {
    alert($("#ddl")[0].selectedIndex);
    alert($("#ddl option:selected").text());
});

使用alert($("#ddl")[0].selectedIndex)我获得第一个选定的索引。例如,如果单击第一个复选框,则第一次获得“1”。之后,如果您点击第三个复选框,您将再次获得“1”(而不是“3”)。因为选择了第一个选项。

我也试过alert($("#ddl option:selected").text()),但我得到了一切。

有没有办法只获取最后选择的值?我只能得到第一个选定的索引。

您也可以在此处找到我的代码:http://jsfiddle.net/bDvkQ/342/

非常欢迎任何帮助,

问候,

3 个答案:

答案 0 :(得分:0)

我认为你不清楚。

单击ddl时,将选择所选值。回来吧。

做这样的事情:

$("#ddl").on("change", function () {
alert($("#ddl").val());
alert($("#ddl option:selected").text());
});

对我来说效果很好。 希望这有帮助。

答案 1 :(得分:0)

检查此代码

$("#ddl").on("change", function () {
var lastText = "";
var last = 0;
$("#ddl option:selected").each(function () {
   lastText = this.text;
    last = this.value;
});
alert(lastText);
alert(last);
});

您可以在此链接中找到http://jsfiddle.net/bDvkQ/344/

答案 2 :(得分:0)

以下是我们如何选择最后选择的值(和第一个),

      $("#ddl").on("change", function () {  
      var selValues = $("#ddl").val();
        alert(selValues[0]);
      alert(selValues[selValues.length - 1]);
    });

但是,如果用户开始反向选择值(从底部开始),您将无法获得最后选择/点击的值,但您将始终获得下拉列表中最后一个选定的值。

我建议创建另一个函数/处理程序,它可以获取所有选定的值并逐个验证它们,而不是在每次单击/选择此多选控件时进行验证。