我有一个通过ajax加载的表单。根据发送到获取表单的参数,表单可能没有复选框,也可能有一个或多个复选框。
我想检查页面上是否有复选框,如果是,则提示用户在验证期间选择一个复选框(如果未选中)。
如果存在,则复选框具有相同的类和不同的ID。
<input type="checkbox" name="associatedClass"
value="$associatedClsNumVal" class="getAssociatedClass"
id="$associatedClsNumVal" />
最好的方法是什么?如果页面/表单中有复选框,jquery可以“感觉”吗?
感谢。
感谢上一篇文章提供的帮助。我正在添加这个,因为它是同一类型的问题。
我现在有一个页面,其中有一组或多组复选框,我需要确保每组中只选中一个复选框。
由于我不知道在页面加载之前有多少组,检查这个的最佳方法是什么?
谢谢!
答案 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');
答案 2 :(得分:0)
if ( $( "#myElement" ).length ) {
// Your code here
}