【问题标题】:How to get last selectedindex如何获取最后选择的索引
【发布时间】:2013-12-13 01:52:01
【问题描述】:

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

我需要这种控件来允许用户选择他们想要的每个选项。但我必须在获得 selectedvalue 后验证他们选择的每个选项。

我在 web 表单中部署了一个 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/

非常欢迎任何帮助,

问候,

【问题讨论】:

标签: asp.net jquery-mobile


【解决方案1】:

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

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

但是,如果用户开始反向选择值(从底部开始),您将不会获得最后选择/单击的值,但您将始终获得下拉列表中最后出现的选定值。

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

【讨论】:

  • 我不能使用这个脚本,因为它显示了所有的 val,而不是最后一个。还是谢谢
  • 我认为这是不正确的。我已经在 IE9 和 IE10 上测试过这个脚本。您使用的是哪个浏览器?实际上,val() 将返回所有选定的项目,但是我们从数组中获取最后一个项目。
【解决方案2】:

检查此代码

$("#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/

【讨论】:

  • 这适用于我的以下更新: $("#ddl").on("change", function () { var lastText = ""; var last = 0; if ($( "#ddl")[0].selectedIndex > 0) { $("#ddl option:selected").each(function () { lastText = this.text; last = this.value; }); alert(lastText) ; 警报(最后); } });非常感谢!
【解决方案3】:

我想你还不清楚。

当你点击 ddl 时,它会选择选中的值。直接退货吧。

做这样的事情:

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

它对我很有效。 希望这会有所帮助。

【讨论】:

  • 我不能使用这个脚本,因为它显示了所有的 val,而不是最后一个。无论如何,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-21
  • 1970-01-01
  • 2011-12-30
  • 1970-01-01
  • 1970-01-01
  • 2011-12-23
  • 2011-12-14
相关资源
最近更新 更多