- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我在 HTML 中有这样的单选按钮:
<td>
<input id="radio1" type="radio" name="correctAnswer" value="1">1</input>
<input id="radio2" type="radio" name="correctAnswer" value="2">2</input>
<input id="radio3" type="radio" name="correctAnswer" value="3">3</input>
<input id="radio4" type="radio" name="correctAnswer" value="4">4</input>
</td>
这是在表单标签中,当用户提交表单时,我想让所有单选按钮恢复为默认值。这意味着他们都没有检查。
我有这段代码,但它给出了一个错误,提示 [0] is null or not an object
$('input[@name="correctAnswer"]')[0].checked = false;
$('input[@name="correctAnswer"]')[1].checked = false;
$('input[@name="correctAnswer"]')[2].checked = false;
$('input[@name="correctAnswer"]')[3].checked = false;
我在 IE 6 中这样做。
最佳答案
在 1.6 之前的 jQuery 版本中使用:
$('input[name="correctAnswer"]').attr('checked', false);
在 1.6 之后的 jQuery 版本中,您应该使用:
$('input[name="correctAnswer"]').prop('checked', false);
但如果您使用的是 1.6.1+,则可以使用第一种形式(请参阅下面的注释 2)。
注意 1:重要的是第二个参数是 false 而不是 "false" 因为 "false" 不是虚假值。即
if ("false") {
alert("Truthy value. You will see an alert");
}
注意 2: 从 jQuery 1.6.0 开始,现在有两个类似的方法,.attr
和 .prop
做两个相关的但略有不同的东西。如果在这种特殊情况下,如果您使用 1.6.1+,则上面提供的建议有效。以上不适用于 1.6.0,如果您使用的是 1.6.0,则应升级。如果您需要详细信息,请继续阅读。
详细信息:当使用直接的 HTML DOM 元素时,DOM 元素附加了一些属性(checked
、type
、 value
等),它提供了 HTML 页面运行状态的接口(interface)。还有 .getAttribute
/.setAttribute
接口(interface),它提供对 HTML 中提供的 HTML 属性值的访问。在 1.6 之前,jQuery 通过提供一种方法 .attr
来模糊区别,以访问两种类型的值。 jQuery 1.6+ 提供了两种方法,.attr
和 .prop
来区分这些情况。
.prop
允许您在 DOM 元素上设置属性,而 .attr
允许您设置 HTML 属性值。如果您使用纯 DOM 并将检查属性 elem.checked
设置为 true
或 false
,您将更改运行值(什么是用户看到)并且返回的值跟踪页面状态。 elem.getAttribute('checked')
但是只返回初始状态(并返回 'checked'
或 undefined
取决于来自HTML)。在 1.6.1+ 中使用 .attr('checked', false)
同时执行 elem.removeAttribute('checked')
和 elem.checked = false
因为更改导致了很多向后兼容性问题,并且它无法真正判断您是要设置 HTML 属性还是 DOM 属性。在 documentation for .prop 中查看更多信息.
关于jquery - 如何在 jQuery 中重置单选按钮,以便不检查任何单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/977137/
我是一名优秀的程序员,十分优秀!