Javascript .on(单击),属性设置不起作用
我试图在复选框上设置“checked”属性 守则:Javascript .on(单击),属性设置不起作用,javascript,jquery,Javascript,Jquery,我试图在复选框上设置“checked”属性 守则: $(".ui.toggle" ).on( "click", function() { if ($('#ownplace').not(':checked')) { $('#ownplace').attr('checked', true ); } else { $('#ownplace').prop('checked', false); } }); 它可以勾选框,但不会取消勾选。我尝试了多种解决方案,包括使用a
$(".ui.toggle" ).on( "click", function() {
if ($('#ownplace').not(':checked')) {
$('#ownplace').attr('checked', true );
}
else {
$('#ownplace').prop('checked', false);
}
});
它可以勾选框,但不会取消勾选。我尝试了多种解决方案,包括使用attr而不是prop——是的,我进行了搜索,但似乎没有什么能澄清这个特定的问题
编辑
如果选中复选框,我需要能够捕获,如下所示:
if($data['ownplace'] == checked) {
$user->ownplace = $data['ownplace'];
}
这项工作是:$('ownplace').prop('checked',!$('ownplace').is('checked')代码>但它没有在字段上设置checked属性,因此我无法检查它是否已选中
没有任何解决方案在输入字段上设置checked=“checked”
,因此单击将使
成为
.prop
不这样做,我猜它只是切换css
Patrick改用prop()
函数:
$('#ownplace').prop('checked', true );
解释
使用attr()也可以(但if子句是错误的),但建议使用prop()
如果要检查复选框的状态,请使用is(:checked)
改用prop()
函数:
$('#ownplace').prop('checked', true );
解释
使用attr()也可以(但if子句是错误的),但建议使用prop()
如果要检查复选框的状态,请使用is(:checked)
更改:
$('#ownplace').attr('checked', true );
致:
更改:
$('#ownplace').attr('checked', true );
致:
您应该使用prop
而不是attr
$('ownplace').prop('checked',true)代码>
attr
仅适用于jQuery 1.6或之前的您应该使用prop
而不是attr
$('ownplace').prop('checked',true)代码>
attr
仅在jQuery 1.6或之前工作很可能问题出在if
条件下。使用:
!$('#ownplace').is(':checked') //instead of $('#ownplace').not(':checked')
然后使用以下选项选中复选框:
$('#ownplace').prop('checked', true );
问题很可能与if
条件有关。使用:
!$('#ownplace').is(':checked') //instead of $('#ownplace').not(':checked')
然后使用以下选项选中复选框:
$('#ownplace').prop('checked', true );
似乎.ui.toggle的queryselector可能会导致一些问题。这里是JSFIDLE,您可以看到for.ui toggle代码工作正常,但是for.ui.toggle代码工作不正常
点击我
点击我
$('.ui.toggle')。打开(“单击”,函数(){
console.log($('#ownplace').is(':checked'));
$('ownplace').prop(“选中的”),!($('ownplace').is(':选中的”);
});
$('.ui toggle')。打开(“单击”,函数(){
console.log($('ownplace2').is(':checked'));
$('ownplace2').prop(“选中”),!($('ownplace2').is(':选中));
});
似乎.ui.toggle的查询选择器可能会导致一些问题。这里是JSFIDLE,您可以看到for.ui toggle代码工作正常,但是for.ui.toggle代码工作不正常
点击我
点击我
$('.ui.toggle')。打开(“单击”,函数(){
console.log($('#ownplace').is(':checked'));
$('ownplace').prop(“选中的”),!($('ownplace').is(':选中的”);
});
$('.ui toggle')。打开(“单击”,函数(){
console.log($('ownplace2').is(':checked'));
$('ownplace2').prop(“选中”),!($('ownplace2').is(':选中));
});
Tryvar-box=$(“#ownplace”);box.prop(“选中”),!box.prop(“选中”)代码>-这将切换它。但除此之外,你不觉得在其中一个中使用.attr
而在另一个中使用.prop
很奇怪吗?使用prop('checked',true)代码>。请在发布问题之前进行搜索,此问题已被询问546543次。正确调试您的代码:使用alert()或consloe.log()方法检查选择器是否正确,以及在何种情况下结束。快捷方式:$(“#ownplace”).prop('checked',!$('#ownplace')。is(':checked')代码>嗨,答案是thnx。这不起作用,因为我需要在输入字段中将attr设置为checked=“checked”。这似乎只是切换复选标记,而不是意外设置选中状态。这需要能够在发布时捕获选中状态。请尝试var-box=$(“#ownplace”);box.prop(“选中”),!box.prop(“选中”)代码>-这将切换它。但除此之外,你不觉得在其中一个中使用.attr
而在另一个中使用.prop
很奇怪吗?使用prop('checked',true)代码>。请在发布问题之前进行搜索,此问题已被询问546543次。正确调试您的代码:使用alert()或consloe.log()方法检查选择器是否正确,以及在何种情况下结束。快捷方式:$(“#ownplace”).prop('checked',!$('#ownplace')。is(':checked')代码>嗨,答案是thnx。这不起作用,因为我需要在输入字段中将attr设置为checked=“checked”。这似乎只是切换复选标记,而不是意外设置选中状态。这需要能够在发布时捕获选中状态。