【问题标题】:Reset/Un-select Select Option重置/取消选择选择选项
【发布时间】:2012-01-19 18:28:10
【问题描述】:

用法:

我有一个表单,它有一个由另一个选择下拉菜单控制的选择下拉菜单。在加载页面时(如果之前选择了值,PHP 会加载它们)选择下拉菜单 #2 隐藏了几个选项(这有效)。当使用 select drop-down #1 选择特定选项时,select drop-down #2 隐藏选项变为可用(.show(),这有效)。

问题:(概述问题的示例:http://jsfiddle.net/RqhbY/7/

当隐藏选项显示/可用并且选择了一个,然后选择下拉列表 #1 更改隐藏下拉列表 #2 中的选项的值时,提交时选择的隐藏值将被提交。

如何取消选择/重置现在隐藏的选定选项?

【问题讨论】:

  • 只是想知道,您是在处理一些遗留代码还是什么?为什么是 jQuery 1.3.2?
  • @Jasper 是的,它是一个较旧的项目,而且使用 jQuery 1.3.2 的旧代码太多了,我还不能升级它。正在进行彻底的重写,但这可能需要几个月的时间,这需要尽快修复

标签: php jquery select options reset


【解决方案1】:

http://jsfiddle.net/RqhbY/8/

尝试改变:

$('select[name=two[0]] option').attr('selected', false);

与:

$('select[name=two[0]] option').removeAttr('selected');

更新

好的,我在 IE 8 中测试了上面的代码,仍然选择了禁用的<option>。然而,这似乎有效:

$('select[name=two[0]]').children('option').removeAttr('selected').filter(':nth-child(1)').attr('selected', true);

演示:http://jsfiddle.net/RqhbY/9/

请注意,您可能希望将 .filter() 调用更新为仅选择非禁用选项,但我会留给您。

更新

如果您在 <select> 元素上调用 .attr('selectedIndex', -1),则您不能选择任何 <option>s。下拉菜单不会显示值,而是空白。

演示:http://jsfiddle.net/RqhbY/10/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-23
    • 2016-02-27
    • 1970-01-01
    • 2023-03-02
    • 2018-05-18
    • 1970-01-01
    • 2019-04-16
    • 1970-01-01
    相关资源
    最近更新 更多