Javascript 使用jQuery检查表单是否有输入元素
我正在使用Yii-PHP框架开发一个应用程序,并使用jQuery进行表单验证。我有一个页面,上面有一个表单,其中包含输入元素的复选框 但是,这些复选框是根据条目动态创建的 为了更好地理解它,我制作了一个交叉矩阵,基本上是一个表,有行表示男性,列表示男性,并在有交叉的单元格中定义复选框。字面上是男性和女性个体的交叉矩阵 但是,如果没有定义为杂交的雄性和雌性,那么对于验证,不应允许用户提交。 我的问题是如何知道表单是否没有元素 如果有checkbox元素,我如何捕获用户是否至少选中了其中一个Javascript 使用jQuery检查表单是否有输入元素,javascript,jquery,forms,validation,submit,Javascript,Jquery,Forms,Validation,Submit,我正在使用Yii-PHP框架开发一个应用程序,并使用jQuery进行表单验证。我有一个页面,上面有一个表单,其中包含输入元素的复选框 但是,这些复选框是根据条目动态创建的 为了更好地理解它,我制作了一个交叉矩阵,基本上是一个表,有行表示男性,列表示男性,并在有交叉的单元格中定义复选框。字面上是男性和女性个体的交叉矩阵 但是,如果没有定义为杂交的雄性和雌性,那么对于验证,不应允许用户提交。 我的问题是如何知道表单是否没有元素 如果有checkbox元素,我如何捕获用户是否至少选中了其中一个 这是
这是我尝试过的,但它似乎没有抓住它,表单仍然提交数据,我想知道为什么:
$('#crossingMatrixForm').submit(function() {
$(":input").each(function() {
if ($(this).val() === empty()) {
alert("form empty!");
return false;
}
});
});
您可以查看表单中是否至少存在一个复选框,并使用
$('#crossingMatrixForm').submit(function(){
if (!$(this).find("input:checked").length) {
alert("form empty!");
return false;
}
});
如果要消除“不存在复选框”和“至少存在一个复选框,但未选中任何复选框”之间的歧义,可以使用$(此项)。对于前者,查找(“:checkbox”)
,对于后者,查找(“:checkbox”)。在这两种情况下,使用.length
查看是否至少存在一个控件:
$('#crossingMatrixForm').submit(function(){
var checkboxes = $(this).find(":checkbox");
if (!checkboxes.length) {
alert("form empty!");
return false;
}
else if (!checkboxes.filter(":checked").length) {
alert("none selected!");
return false;
}
});
根据:empty()
是:
Description: Remove all child nodes of the set of matched elements from the DOM.
因此,您必须使用
”
来比较字符串。jQuery允许您测试字段以及是否有字段。因此,有了这些,您可以尝试以下方法:
$('#crossingMatrixForm').submit(function(){
var $this = $(this);
if (!$this.find('input:checkbox').length || !$this.find('input:checked').length) {
alert('Form empty!');
return false;
}
});
谢谢你,先生,我不再需要在这两种情况之间消除歧义了