jQuery检查Checkbox是否在页面上

时间:2016-11-07 13:45:27

标签: javascript jquery ajax checkbox

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

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

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

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

最好的方法是什么?如果页面/表单中有复选框,jquery可以“感觉”吗?

感谢。

感谢上一篇文章提供的帮助。我正在添加这个,因为它是同一类型的问题。

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

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

谢谢!

3 个答案:

答案 0 :(得分:3)

最简单的方法是检查页面上是否有任何类型的输入复选框。使用jQuery,您可以使用input[type="checkbox"]等CSS选择器来查找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
});

这样做的好处是,如果页面上没有,它将不会尝试和验证任何内容,并且它完全有效,因此我们无需在验证之前检查是否有任何内容。

答案 1 :(得分:2)

$(':checkbox').length

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

例如,只计算类&#39; section1&#39;:

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

https://jsbin.com/bowasi/edit?html,js,console,output

答案 2 :(得分:0)

if ( $( "#myElement" ).length ) {

   // Your code here

}