Jquery 确定何时取消选中复选框并清除字段
我试图检测复选框何时取消选中,以及下面对应的字段(带有Id)是否有值,然后将其清空 有什么想法吗 我正在处理以下问题,但它不起作用:Jquery 确定何时取消选中复选框并清除字段,jquery,checkbox,Jquery,Checkbox,我试图检测复选框何时取消选中,以及下面对应的字段(带有Id)是否有值,然后将其清空 有什么想法吗 我正在处理以下问题,但它不起作用: $('#end_date_specified').click(function() { $('#end_date_datepicker, #end_date_datepicker_altfield').empty(); $('#datediv').toggle(); }); 我认为这其中的一个问题是,无论如何单击复选框,它都会清空字段值。我认为这就是您想要的
$('#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()
文档中:“对于选择框、复选框和单选按钮,当用户用鼠标进行选择时,事件会立即触发,但是对于其他元素类型,事件会延迟到元素失去焦点为止。”很好,我刚刚意识到,它必须是;