繁体   English   中英

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

[英]jQuery check if Checkboxes are on page

我有一个通过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

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM