我无法搞清楚这一点。我有两个复选框(将来会有更多):
checkSurfaceEnvironment-1
checkSurfaceEnvironment-2
基本上,我想编写一个if语句并测试其中一个是否被选中而另一个未被检查。实现以下目标的最简单方法是什么:
if ( $("#checkSurfaceEnvironment-1").attr('checked', true) &&
$("#checkSurfaceEnvironment-2").is('**(NOT??)** :checked') ) {
// do something
}
答案 0 :(得分:188)
我使用的一种可靠方式是:
if($("#checkSurfaceEnvironment-1").prop('checked') == true){
//do something
}
如果要迭代已检查的元素,请使用父元素
$("#parentId").find("checkbox").each(function(){
if ($(this).prop('checked')==true){
//do something
}
});
更多信息:
这很有效,因为所有复选框都选中了一个属性,用于存储复选框的实际状态。如果您希望可以检查页面并尝试选中并取消选中一个复选框,您会注意到“已检查”属性(如果存在)将保持不变。此属性仅表示复选框的初始状态,而不是当前状态。当前状态存储在该复选框的dom元素的已检查属性中。
答案 1 :(得分:72)
if (!$("#checkSurfaceEnvironment-1").is(":checked")) {
// do something if the checkbox is NOT checked
}
答案 2 :(得分:28)
您还可以使用jQuery .not()
方法或:not()
选择器:
if ($('#checkSurfaceEnvironment').not(':checked').length) {
// do stuff for not selected
}
来自:not()
选择器的jQuery API文档:
.not() 方法最终会为您提供更多可读性 选择而不是将复杂的选择器或变量推送到:not() 选择器过滤器。在大多数情况下,这是一个更好的选择。
答案 3 :(得分:21)
另一种方式:
这是一个working example,这里是代码,你也应该使用prop。
$('input[type="checkbox"]').mouseenter(function() {
if ($(this).is(':checked')) {
//$(this).prop('checked',false);
alert("is checked");
} else {
//$(this).prop('checked',true);
alert("not checked");
}
});
我注释了切换checked属性的方法。
答案 4 :(得分:8)
if ( $("#checkSurfaceEnvironment-1").is(":checked") && $("#checkSurfaceEnvironment-2").not(":checked") )
答案 5 :(得分:5)
我正在寻找像avijendr建议的更直接的实施方式。
我的语法有点麻烦,但是我让它起作用了:
if ($('.user-forms input[id*="chkPrint"]:not(:checked)').length > 0)
在我的情况下,我有一个包含类user-forms
的表,我正在检查是否取消选中了checkPrint
中包含字符串id
的任何复选框。
答案 6 :(得分:3)
要像你一样使用.attr()
,要查看它是否为.attr("checked", "checked")
,如果不是,则为.attr("checked") == undefined
答案 7 :(得分:3)
我在这里有一个问题的片段。
$(function(){
$("#buttoncheck").click(function(){
if($('[type="checkbox"]').is(":checked")){
$('.checkboxStatus').html("Congratulations! "+$('[type="checkbox"]:checked').length+" checkbox checked");
}else{
$('.checkboxStatus').html("Sorry! Checkbox is not checked");
}
return false;
})
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<p>
<label>
<input type="checkbox" name="CheckboxGroup1" value="checkbox" id="CheckboxGroup1_0">
Checkbox</label>
<br>
<label>
<input type="checkbox" name="CheckboxGroup1_" value="checkbox" id="CheckboxGroup1_1">
Checkbox</label>
<br>
</p>
<p>
<input type="reset" value="Reset">
<input type="submit" id="buttoncheck" value="Check">
</p>
<p class="checkboxStatus"></p>
</form>
答案 8 :(得分:2)
我认为(使用jQuery)检查复选框是否已选中的最简单方法是:
如果已选中:
if ($(this).is(':checked')) {
// I'm checked let's do something
}
如果未“选中”:
if (!$(this).is(':checked')) {
// I'm NOT checked let's do something
}
答案 9 :(得分:1)
尝试这个
if ($("#checkSurfaceEnvironment-1:checked").length>0) {
//your code in case of NOT checked
}
在上面的代码中,按ID (#checkSurfaceEnvironment-1)
选择元素,然后按(:checked)
过滤器过滤掉它的检查状态。
它将返回已检查元素对象的数组。如果数组中存在任何对象,那么条件是否满足。
答案 10 :(得分:1)
简单易行的检查或未检查状态
<input type="checkbox" id="ev-click" name="" value="" >
<script>
$( "#ev-click" ).click(function() {
if(this.checked){
alert('checked');
}
if(!this.checked){
alert('Unchecked');
}
});
</script>
答案 11 :(得分:1)
有两种方法可以检查状况。
if ($("#checkSurfaceEnvironment-1").is(":checked")) {
// Put your code here if checkbox is checked
}
或者你也可以使用这个
if($("#checkSurfaceEnvironment-1").prop('checked') == true){
// Put your code here if checkbox is checked
}
我希望这对你有用。
答案 12 :(得分:1)
这是最简单的方法
<script type="text/javascript">
$(document).ready(function () {
$("#chk_selall").change("click", function () {
if (this.checked)
{
//do something
}
if (!this.checked)
{
//do something
}
});
});
</script>
答案 13 :(得分:1)
如果在div中选中所有复选框,则返回true
function all_checked (id_div){
all_checked = true;
$(id_div+' input[type="checkbox"]').each(function() {
all_checked = all_checked && $('this').prop('checked');
}
return all_checked;
}
答案 14 :(得分:0)
我用过这个并为我工作过!
$("checkbox selector").click(function() {
if($(this).prop('checked')==true){
do what you need!
}
});
答案 15 :(得分:0)
我知道这已经得到了回答,但是,这是一个很好的方法:
if ($("#checkbox").is(":checked")==false) {
//Do stuff here like: $(".span").html("<span>Lorem</span>");
}
答案 16 :(得分:0)
if($("#checkbox1").prop('checked') == false){
alert('checkbox is not checked');
//do something
}
else
{
alert('checkbox is checked');
}
答案 17 :(得分:-3)
$("#chkFruits_0,#chkFruits_1,#chkFruits_2,#chkFruits_3,#chkFruits_4").change(function () {
var item = $("#chkFruits_0,#chkFruits_1,#chkFruits_2,#chkFruits_3,#chkFruits_4");
if (item.is(":checked")==true) {
//execute your code here
}
else if (item.is(":not(:checked)"))
{
//execute your code here
}
});