Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript .on(单击),属性设置不起作用_Javascript_Jquery - Fatal编程技术网

Javascript .on(单击),属性设置不起作用

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

我试图在复选框上设置“checked”属性

守则:

$(".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(':选中));
});

Try
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”。这似乎只是切换复选标记,而不是意外设置选中状态。这需要能够在发布时捕获选中状态。请尝试
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”。这似乎只是切换复选标记,而不是意外设置选中状态。这需要能够在发布时捕获选中状态。