JQuery检查checkbox是否被选中
我很难解决这个问题。 我有两个checkbox(将来会有更多):
checkSurfaceEnvironment-1
checkSurfaceEnvironment-2
基本上,我想写一个if语句并testing是否被选中。 什么是最简单的方法来完成这个? (即,如果checkSurfaceEnvironment-1被选中并且checkSurfaceEnvironment-2不是…做某事)
if ( $("#checkSurfaceEnvironment-1").attr('checked', true) && $("#checkSurfaceEnvironment-2").is('**(NOT??)** :checked') )
我使用的一个可靠的方法是:
if($("#checkSurfaceEnvironment-1").prop('checked') == true){ //do something }
如果你想迭代选中的元素,使用父元素
$("#parentId").find("checkbox").each(function(){ if ($(this).prop('checked')==true){ //do something } });
更多信息:
这很好,因为所有的checkbox都有一个属性被选中,用来存储checkbox的实际状态。 如果你希望你可以检查页面,并尝试检查和取消选中一个checkbox,你会注意到“checked”属性(如果存在)将保持不变。 该属性仅表示checkbox的初始状态 ,而不表示当前状态。 当前状态存储在该checkbox的dom元素的检查属性中。
请参阅HTML中的属性和属性
if (!$("#checkSurfaceEnvironment-1").is(":checked")) { // do something if the checkbox is NOT checked }
另一种方法:
这里是一个工作的例子 ,这里是代码,你也应该使用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"); } });
我注释了切换选中属性的方式。
你也可以使用jquery 而不是select器
if($('#checkSurfaceEnvironment').not(':checked').length){ // do stuff for not selected }
http://api.jquery.com/not-selector/
Jsfiddle示例:
if ( $("#checkSurfaceEnvironment-1").is(":checked") && $("#checkSurfaceEnvironment-2").not(":checked") )
我正在寻找像avijendrbuild议的更直接的实施。
我的语法有点麻烦,但我得到了这个工作:
if ($('.user-forms input[id*="chkPrint"]:not(:checked)').length > 0)
在我的情况下,我有一个类的user-forms
,我正在检查是否任何checkbox的stringcheckPrint
在他们的id
没有选中。
要像.attr()
这样做,看看它是否被检查.attr("checked", "checked")
,如果不是,它会是.attr("checked") == undefined
这里有最好的摘录这个quetions
$(function(){ $("#buttoncheck").click(function(){ if($('[type="checkbox"]').is(":checked")){ $('.checkboxStatus').html("Congregation ! "+$('[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>
如果所有的checbox都在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; }
简单和容易检查或未检查的情况
<input type="checkbox" id="ev-click" name="" value="" > <script> $( "#ev-click" ).click(function() { if(this.checked){ alert('checked'); } if(!this.checked){ alert('Unchecked'); } }); </script>
试试这个
if ($("#checkSurfaceEnvironment-1:checked").length>0) { //your code in case of NOT checked }
在上面的代码中,通过Id (#checkSurfaceEnvironment-1)
select元素,然后通过(:checked)
筛选器筛选它的检查状态。
它将返回检查的元素对象的数组。 如果数组中存在任何对象,则满足条件。
我用这个在为我工作!
$("checkbox selector").click(function() { if($(this).prop('checked')==true){ do what you need! } });