【问题标题】:How to get last deselected item from multiple select如何从多个选择中获取最后一个取消选择的项目
【发布时间】:2012-11-06 13:20:51
【问题描述】:

我有 2 个选择元素,我使用第一个选择的选定选项值设置第二个多重选择的项目。

我将值绑定到多类型的第二个选择。我正在隐藏中跟踪所选项目的值,因为如果用户选择第一个选择元素的另一个选项,则第二个选择绑定不同的选项值。

1- 选择具有类别组值的元素

2- 具有类别值的多选元素

例如第一个选择是类别组,当用户选择类别组时,我将该组的类别绑定到多个选择元素中。假设用户选择了 ID 为 1、4、5、7 的组。我将它们设置为隐藏字段中的逗号分隔值。如果用户选择另一个类别组,我将该组的类别绑定到多个选择元素。假设用户选择了类别 11、15、18。当前隐藏值为“1,4,5,7,11,15,18”。 但随后从中取消选择 15。我必须将隐藏字段的值设置为:“1,4,5,7,11,18”。但我无法检测到哪个选项被取消选择。有没有办法以任何方式检测到它?

也许我应该使用更好的算法。非常感谢任何帮助。谢谢

【问题讨论】:

  • 隐藏字段似乎没有必要。它只是以不同的形式反映了多选元素的状态。如果您出于某种原因需要 x,y,z,... 字符串,则可以在每次需要时即时构建它,而不是保留现成的镜像。
  • 假设我有一个包含 vals x,y,z 的类别组。如果用户选择 x,则第二个选择元素绑定 1,2,3。然后用户检查 1 和 3。如果用户选择另一个名为 y 的类别组。然后 id 为 4,5,6 的新类别将绑定到第二个选择。然后用户选择 5,6。我想将 1,3,5,6 提交到服务器,但我当前的第二个选择只检查了 5,6。这就是我使用隐藏字段的原因。

标签: jquery html select


【解决方案1】:

我将多选框更改为复选框列表,这样我可以单独跟踪每个项目的选择/取消选择更改。然后,如果未选中,则从隐藏值中删除,或者如果选中,则将值添加到列表中。这是做我正在做的事情的更好方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    • 2012-05-14
    • 2021-11-26
    • 2019-04-16
    • 2021-11-13
    相关资源
    最近更新 更多