1

这是情况

我的 JSP 页面中有一个包含许多输入字段的表单。输入文本字段的数量未知,因为它基于先前的操作类。

提交表单时,我想检查所有输入文本字段是否为空。如果全部为空,则不应提交。否则(在任何情况下,即必须填写至少一个文本字段),则应提交表单。

我尝试过的 JQuery:

$('#dataFieldMapping').submit(function() {
    if ($('input:text').is(":empty")) {
        alert("Empty!");
        preventDefault();
     }
});

dataFieldMapping是表单的 id)。当我点击提交时,它会提示“空!” 总是,即使所有文本字段都已填满。

注意:我的提交按钮在表单之外。所以我在使用

$('#dataFieldMapping').submit();

未经验证。但我想验证表格。

4

2 回答 2

2

演示

$('#dataFieldMapping').submit(function (e) {
    if (!$(this).find('input:text').filter(function () {
        return $.trim(this.value) != ""
    }).length) {
        alert("Empty!");
        e.preventDefault();
    }
});
于 2013-07-26T10:45:18.120 回答
1

您没有在事件对象上调用 preventDefault,您需要preventDefault在事件对象上调用。您尝试检查所有字段是否为空的方式不会给您正确的结果,因为它会检查子项不值。

:empty 选择所有没有子元素(包括文本节点)的元素,参考

$('#dataFieldMapping').submit(function(event) {
    lst = $('input:text').filter(function(){
         this.value != "";
     });
    if(lst.length)
    {
       alert("Empty!");
       preventDefault();
    }
});
于 2013-07-26T10:42:16.407 回答