javascript - 使用 jQuery 检查表单是否有输入元素

标签 javascript jquery forms validation submit

我正在使用 Yii PHP 框架开发应用程序,并使用 jQuery 进行表单验证。我有一个页面,上面有一个表单,其中包含用于输入元素的复选框

但是,这些复选框是根据条目动态创建的。

为了更好地理解它,我制作了一个交叉矩阵,基本上是一个表格,代表女性,代表男性,并定义复选框有交叉点的单元格。字面意思是男性和女性个体的交叉矩阵。

但是,如果还没有没有男性和女性被定义为交叉,那么对于验证,它不应该允许用户提交。

我的问题是如何知道表单是否没有元素?

如果有复选框元素,我如何才能知道用户是否至少选中了其中一​​个?


这是我尝试过的,但它似乎没有捕捉到它,表单仍然提交数据,我想知道为什么:

$('#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;
    }
});

如果你想区分“不存在复选框”和“至少有一个存在,但没有被选中”,你可以使用 $(this).find(":checkbox") 作为前者和 .filter(":checked") 是后者。在这两种情况下,使用 .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;
    }
});

关于javascript - 使用 jQuery 检查表单是否有输入元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19089509/

相关文章:

javascript - 有一个选择表单字段获取今天是星期几

javascript - 有没有办法将变量从 ui.router 传递给 Controller ​​?

javascript - 如何检测是否选择了一个div?

javascript - Galleria 起始图像滑回到第一张图像

asp.net - jQuery 和 ASP.NET 名称

javascript - 文件输入时动态启动事件

javascript - 如何让我的 vert.x 进程退出

javascript - 如何从异步调用返回响应?

javascript - 使用 JavaScript 更改行表颜色

jquery - Bootstrap 表单验证插件推荐