【发布时间】:2017-02-11 00:41:30
【问题描述】:
我一直在尝试允许使用 jQuery 取消选择单选按钮,但我遇到了 prop 函数的问题。当此代码运行时,我的条件 ($(e.currentTarget).prop('checked')) 始终评估为 true。
这是一个演示我的问题的小提琴:Jsfiddle
仅供参考:我使用的是 jQuery 1.8.2,我无法更新它,因为它是一个具有许多依赖项的遗留项目。此外,我必须根据客户的要求使用单选按钮。
Javascript:
$("input[name=optionMedia]").click(function(e) {
if ($(e.currentTarget).prop('checked')) {
$(e.currentTarget).prop('checked', false);
}
});
HTML:
<input class="bigSizeInput" type="radio" id="audioVideo" name="optionMedia" value="1"/>
<input class="bigSizeInput" type="radio" id="showReel" name="optionMedia" value="2" />
【问题讨论】:
-
如果你想取消选中然后使用
checbox的代替,radio类型不是为此目的。 -
作为对 Zakaria 评论的补充,单选按钮始终需要准确地选中 1。不是 0,不是 2。如果您希望能够选中 0,则应使用复选框,如果您希望在选中其他复选框时取消选中其他复选框,则通过 javascript 完成。
-
单选按钮不是为此目的而制作的,您正试图强制执行非规范行为 - 总是一个坏主意。必须始终选择一个选项。您将无法以任何一致的方式覆盖此行为。如果您需要能够取消选择,请改用复选框。
-
您需要向客户解释他们根本无法以这种方式工作,任何编程都无法改变这一点。单选按钮行为由 W3C 指定,并且 Web 客户端的开发遵循这些规范。你正试图强迫你的浏览器做一些它不适合做的事情。
-
这是你在jsfiddle.net/q7r9btbb之后的样子吗?
标签: javascript jquery html