Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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
Jquery 确定何时取消选中复选框并清除字段_Jquery_Checkbox - Fatal编程技术网

Jquery 确定何时取消选中复选框并清除字段

Jquery 确定何时取消选中复选框并清除字段,jquery,checkbox,Jquery,Checkbox,我试图检测复选框何时取消选中,以及下面对应的字段(带有Id)是否有值,然后将其清空 有什么想法吗 我正在处理以下问题,但它不起作用: $('#end_date_specified').click(function() { $('#end_date_datepicker, #end_date_datepicker_altfield').empty(); $('#datediv').toggle(); }); 我认为这其中的一个问题是,无论如何单击复选框,它都会清空字段值。我认为这就是您想要的

我试图检测复选框何时取消选中,以及下面对应的字段(带有Id)是否有值,然后将其清空

有什么想法吗

我正在处理以下问题,但它不起作用:

$('#end_date_specified').click(function() {
 $('#end_date_datepicker, #end_date_datepicker_altfield').empty();
 $('#datediv').toggle();
});
我认为这其中的一个问题是,无论如何单击复选框,它都会清空字段值。

我认为这就是您想要的:

$('#end_date_specified').change(function() {
  if(!this.checked) {
    $('#end_date_datepicker, #end_date_datepicker_altfield').val('');
  }
  $('#datediv').toggle(this.checked);
});

只有在
change
(比单击
以获得正确的状态要好)我们只有在不清除时才清除,然后根据是否使用选中它来显示
#datediv

现在,不管你说什么,你都要清除该div。您要做的是在复选框中检查“checked”属性。如果为false/undefined/null,则执行空操作

$('#end_date_specified').click(function() {
 if(!$('#end_date_specified').attr('checked')) {
     $('#end_date_datepicker, #end_date_datepicker_altfield').empty();
     $('#datediv').toggle();
 }
});

你说的“空”是什么意思?取消选中?我们可以看到您的HTML吗?
change
事件仅在输入元素失去焦点时触发(并且新值/状态与旧值/状态不同)。通常,当您单击复选框时,元素将保持焦点,直到您单击页面上的其他位置。对于复选框和单选按钮,使用
click
事件而不是
change
事件更直观。@BalusC-jQuery将
change
事件规范化,使其在此处的行为符合预期,
click
不适合使用,因为在许多情况下,您会获得以前的状态。自己试试看:哦,jQuery规范化了吗?我从来不知道。是在什么地方指定的吗?顺便问一下,在许多情况下,如何获得以前的状态?如果单击复选框,其状态仍会更改。@BalusC-yup,在
.change()
文档中:“对于选择框、复选框和单选按钮,当用户用鼠标进行选择时,事件会立即触发,但是对于其他元素类型,事件会延迟到元素失去焦点为止。”很好,我刚刚意识到,它必须是;