复选框检查验证
checkbox checking verification
HTML:
<div>
<input>
<label>
</div>
JS:
$('div input').live('click',function(){
alert($(this).is(':checked'));
});
$('div').live('click,'function(e){
if(!$(e.target).is('input'))
$(this).find('input').click();
});
每当我点击输入时,它都会准确地显示输入的结果(如果我打开输入,它会提醒true(
但每当我点击div/标签时,它就会反其道而行之(当输入打开时,它会提醒false(
有没有一种方法可以测试输入是否在两种情况下都打开和关闭,而不是1
[我认为发生这种情况的原因是,一个是由浏览器触发的,它发生在jquery之前(尽管我认为jquery应该首先发生,但不管怎样(,而在另一种情况下,jquery在"已检查"的触发器之前运行,但似乎不知道如何将触发器延迟到脚本之后,或强制它在脚本之前运行。]
提前感谢!
您可以在复选框本身上监视change()
,然后单击div可以直接更改复选框中的值,然后触发change()
而不是click()
。
$('input[type="checkbox"]').live('change',function(){
alert($(this).is(':checked'));
});
$('div').live('click',function(e){
if(!$(e.target).is('input')) {
var $input = $(this).find('input');
$input.prop("checked", !$input.is(':checked')).change();
}
});
此外,如果您的目的是避免整个<label for="" />
烦恼,请查看此项。
<label><input type="checkbox" value="awesome" /> Check it</label>
试试这个:
$('div input').live('click',function(){
alert($(this).is(':checked'));
});
$('div').live('click,'function(e){
if(!$(e.target).is('input'))
$(this).find('input').triggerHandler("click");
});
相关文章:
- Javascript中的电子邮件验证检查
- 如何在Netsuite Suitelet脚本中进行验证检查
- 多重验证检查 - 逻辑错误
- jqBootstrapValidation.js中的 Javascript 用户名验证检查
- 禁用对单个非映射选项字段的验证检查
- 推送提交后,如果输入字段为黑色,则显示验证检查或以红色字母显示警告
- Javascript 和 HTML 表单验证检查
- Jquery验证插件,使用选项的数据元素作为验证检查
- 在 C# 和 JavaScript 中对手机号码进行验证检查
- jQuery 验证 - 检查两个密码是否相等
- 使用javascript验证检查将文件上载到文件夹-ASP.NET
- AngularJS - 表单自定义验证 - 检查是否至少有一个输入为空
- jQuery表单验证-检查电子邮件是否相同
- 如何对数据库变量进行健全性和验证检查
- 验证检查输入的长度
- 如何在解析前取消/忽略AngularJS异步验证检查
- 并不是所有的验证检查都在提交时执行
- 只有当验证检查返回true时才通过ajax POST
- Angular的ui-router,可以在其他解决之前解决一个身份验证检查
- javascript验证检查点击条件从HTML