2010-10-27 95 views
7

我想检查复选框是否选中使用jquery。我想检查复选框的onclick事件。检查复选框是否被选中使用jquery

<input type="checkbox" onclick="javascript:check_action();" id="Public(Web)" checked="checked" value="anyone" name="data[anyone]"> 

这可能吗?怎么样?

谢谢。

+1

不要使用'的JavaScript:'在事件处理程序的属性。这是错误的,因为它碰巧是有效的JavaScript语法。 – 2010-10-27 10:26:56

+0

id =“公共(Web)”不是有效的ID名称。 ID和名称标记必须以字母([A-Za-z])开头,后面可以跟随任意数量的字母,数字([0-9]),连字符(“ - ”),下划线(“_”) ,冒号(“:”)和句点(“。”)。 – 2010-10-27 10:27:55

+1

@FutureKode:在HTML 4中,是的。在HTML 5中,没有。但在可预见的未来,你绝对是对的 – 2010-10-27 10:39:25

回答

8

首先,在事件处理程序的属性不使用javascript:。这是错误的,因为它碰巧是有效的JavaScript语法。其次,您的id无效。在id属性中不允许使用括号(至少在HTML 4中; HTML 5解除此限制)。第三,如果您使用的是jQuery,使用它的click()方法来处理click事件可能是有意义的,但请注意,将其改为执行此操作意味着如果用户在文档加载之前单击复选框,则脚本不会处理它。

<input type="checkbox" id="Public_Web" checked value="anyone" 
    name="data[anyone]"> 

$(document).ready(function() { 
    $("#Public_Web").click(function() { 
     if (this.checked) { 
      alert("Checked!"); 
     } 
    }); 
}); 
+0

嘿,这工作。感谢这个好的。感谢所有为此回答的人。 – gautamlakum 2010-10-27 10:42:01

4

你可以这样做

$('#checkbox_id').click(function(){ 
    alert(this.checked); 
}); 

或者用is()方法:

$('#checkbox_id').click(function(){ 
    if ($(this).is(':checked')){ 
    alert('Checked'); 
    } 
    else{ 
    alert('Not Checked'); 
    } 
}); 

如果你想为表单中的所有复选框做到这一点,你可以使用:checkbox过滤器选择这样的:

$('#form_id :checkbox').click(function(){ 
    alert(this.checked); 
}); 

确保将代码包装就绪处理程序:

$(function(){ 
    // code.... 
}); 
+0

<脚本类型= “文/ JavaScript的”> \t $( '#公用(网络)')点击(函数(){ \t \t如果($(本)。是( ':检查')){ \t \t \t警报( '经过'); \t \t}否则{ \t \t \t警报( '不检查'); \t \t} \t}); 我试过了。但它没有奏效。 – gautamlakum 2010-10-27 10:32:23

1

首先,在脚本标记中绑定事件,而不是内联。这更容易遵循,并使您的HTML更具可读性。 然后,您可以使用jQuery选择器:checked来确定是否选中该复选框。然后您可以使用元素的checked属性。

$(document).ready(function(){ 
    $('#Public(Web)').click(function(){ 
     if (this.checked) { 
      // do your code here 
     } 
    }); 
}); 
+1

说真的,没有。为了检查单个复选框是否被选中,$(this).is(':checked')'简直是疯了。 'this.checked'在所有可能的意义上都更好。 – 2010-10-27 10:34:57

+0

是的。原谅我,JS神,因为我犯了罪... – lonesomeday 2010-10-27 10:36:36

+0

讽刺,我认为? '$(this).is(':checked')'是我的宠物,它代表了它的一个症状。我需要详细说明吗? – 2010-10-27 10:38:14

0

下面是另一个例子,通知而是采用了onClick事件中的元素本身我宁愿使用监听器,但是从ID中的括号去掉,它会给你在某些浏览器很难。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html><head> 
<input type="checkbox" id="PublicWeb" checked="checked" value="anyone" name="data[anyone]" /> 
<script type='text/javascript' src='http://code.jquery.com/jquery-latest.min.js'></script> 
<script> 
$(document).ready(function(){ 
    $('#PublicWeb').click(function(){ 
     if($(this).is(':checked')){ 
      alert("its checked alright"); 
     } 
    }); 
}); 
</script> 
</head><body></body></html> 
8

您也可以使用此

if($("#checkbox_id").is(':checked')) 
2

有几个选项是有喜欢....

1. if($("#ans").is('checked')) 
2. if($("#ans:checked")) 
3. if($('input:checkbox:checked')) 
1

试试这个:

if(!$('#elementid').is(':checked')){ 
    alert('Not checked'); 
}else{ 
    alert('checked'); 
} 
1

你可以做到这一点使用is()方法:

$('##Public_Web').click(function(){ 
    if ($(this).is(':checked')){ 
    alert('Checked'); 
    } 
    else{ 
    alert('Not Checked'); 
    } 
}); 

如果你想为表单中的所有复选框做到这一点,你可以使用:checkbox筛选器:

$('#form_id :checkbox').click(function(){ 
    alert(this.checked); 
}); 

确保包装你的代码文件准备好处理:

$(document).ready(function() { 
     // code.... 
    }); 
相关问题