jQuery检查复选框是否在页面上

jQuery check if Checkboxes are on page

本文关键字:是否 检查 复选框 jQuery      更新时间:2023-09-26

我有一个通过ajax加载的表单。根据为获取表单而发送的参数,表单可能没有复选框,也可能有一个或多个复选框。

我想检查页面上是否存在复选框,如果是,则在验证期间提示用户选择一个复选框(如果未选中(。

如果存在,复选框具有相同的类和不同的ID。

<input type="checkbox" name="associatedClass" 
value="$associatedClsNumVal" class="getAssociatedClass" 
id="$associatedClsNumVal" />

什么是最好的方法?如果页面/表单中有复选框,jquery能"感知"吗?

谢谢。


谢谢你对我上一篇文章的帮助。我将添加到这个问题中,因为它是同一类型的问题。

我现在有一个页面,其中有一组或多组复选框,我需要确保每组中只选中一个复选框。

由于在页面加载之前我不知道有多少组,所以检查这一点的最佳方法是什么?

谢谢!

最简单的方法是检查页面上是否有类型复选框的输入。使用jQuery,您可以使用CSS选择器(如input[type="checkbox"](来查找DOM中的元素。把它和.length结合起来,你就可以得到页面上有多少。完整的jQuery代码是

if ( $('input[type="checkbox"]').length ) {
    // Validate checkboxes
}

如果页面上可能有其他不希望验证的复选框,那么您可以将搜索限制为特定元素。例如,如果您只想验证ID为myForm的特定表单中的复选框,那么您可以选择该表单并使用.find()在该表单中搜索复选框

if ( $('#myForm').find('input[type="checkbox"]').length )
{
    // Validate checkboxes
}

然而,在进行验证时,您可能希望单独检查每个输入,因此,我们可以使用.each查找所有复选框,然后一次处理一个复选框,而不仅仅是检查长度以确保页面上至少有一个复选复选框。

$('input[type="checkbox"]').each(function () {
    // Validate this checkbox
});

这样做的好处是,如果页面上没有,它就不会尝试验证任何内容,而且它是完全有效的,所以我们不需要在验证之前检查是否有。

$(':checkbox').length

将为您统计页面上的所有复选框。如果你需要更具体的话,你可以通过给他们一个公共类来缩小范围。

例如,只计算类"section1"的复选框:

var $checks = $('.section1:checkbox');
console.log('There are ' + $checks.length + '  checkboxes');

https://jsbin.com/bowasi/edit?html,js,控制台,输出

if ( $( "#myElement" ).length ) {
   // Your code here
}