我有
<input type="checkbox" id="checkbox1" />
<input type="text" id="textbox1" />
和
$(document).ready(function() {
//set initial state.
$('#textbox1').val($(this).is(':checked'));
$('#checkbox1').change(function() {
$('#textbox1').val($(this).is(':checked'));
});
$('#checkbox1').click(function() {
if (!$(this).is(':checked')) {
return confirm("Are you sure?");
}
});
});
此处更改的事件使用复选框状态更新文本框值 . 我使用click事件来确认取消选中时的操作 . 如果用户选择取消,则复选标记将被恢复,但更改甚至会在确认之前触发,从而使事物处于不一致状态(选中复选框时文本框显示为false) . 如何处理取消并保持文本框值与检查状态一致?
16 回答
好吧,我不会发布这个帖子 . 在_619679中测试并执行您要求的操作 . 当单击与复选框关联的标签时,此方法具有触发的额外好处 .
Original Answer:
Updated Answer:
演示
使用
mousedown
如果您使用
<label for="cbId">cb name</label>
,大多数答案都不会捕获它(大概) . 这意味着当您单击标签时,它将选中该框而不是直接单击该复选框 . (不完全是问题,但各种搜索结果往往会来到这里)在这种情况下,您可以使用:
Earlier versions of jQuery:
JSFiddle example with jQuery 1.6.4
jQuery 1.7+
JSFiddle example with the latest jQuery 2.x
嗯..只是为了挽救头痛(过去午夜),我可以想出:
希望能帮助到你
对我来说这很有用:
这个给你
Html
JavaScript
摆脱更改事件,而是更改单击事件中文本框的值 . 而不是返回确认的结果,在var中捕获它 . 如果是真的,请更改该值 . 然后返回var .
复选框单击并检查同一事件循环中的值是问题 .
试试这个:
演示:http://jsfiddle.net/mrchief/JsUWv/6/
试试这个
如果您使用的是iCheck Jquery,请使用以下代码
只需使用点击事件我的复选框ID是CheckAll
通过 name 获取无线电值
我不确定为什么每个人都这么复杂 . 这就是我所做的一切 .