我有一个jsfiddle,但我无法使javascript正确运行。小提琴在http://jsfiddle.net/davidm1181/suW6f/。
正在停止它的javascript代码如下:
if ($(this).checked()) {
$('.r1').val('true');
}
问题是,我在生产Web服务器上运行相同的代码并且工作正常,并且在我的Web服务器上如果我将checked()更改为刚检查,代码仍将运行,但它将始终返回true 。有人可以帮我理解这个吗?谢谢。
答案 0 :(得分:3)
结果说明:
jquery对象没有.checked()
函数。因此,当您调用$(this).checked()
时,会导致抛出以下错误:
TypeError: Object [object Object] has no method 'checked'.
此外,jquery对象没有checked
属性。因此,$(this).checked
的值为undefined
,这被认为是假的。 (你说它总是返回true,但我认为这是一个错误。)
检查复选框是否已选中的正确方法:
您可以使用以下任何一项:
if (this.checked) {
if ($(this).is(':checked')) {
if ($(this).prop('checked')) {
你使用的是风格问题。
答案 1 :(得分:1)
<强> JSFIDDLE DEMO 强>
使用
if(this.checked) or if($(this).is(':checked'))
而不是
if ($(this).checked()) {
代码:
$(':checkbox').change(function () {
$('.r1').val(this.checked);
$('.r2').val(this.checked);
});
答案 2 :(得分:0)
当我必须验证是否选中了复选框时,我使用的是(':checked'):
if ($(this).is(':checked')) {
$('.r1').val('true');
}
答案 3 :(得分:0)
在jquery或javascript
中没有任何名为.checked()的东西你可以使用
.checked
- 仅与this
一起使用.is(":checked")
- 与$(this)
.prop("checked")
- 与$(this)
我制作了一个小提琴here