检查表单中的所有输入文本字段是否为空提交,如果至少填写了一个文本字段则忽略

时间:2013-07-26 10:40:57

标签: javascript jquery forms jsp validation

情况如下

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

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

我尝试过的JQuery:

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

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

NB :我的提交按钮位于表单之外。所以我正在使用

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

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

2 个答案:

答案 0 :(得分:2)

DEMO

$('#dataFieldMapping').submit(function (e) {
    if (!$(this).find('input:text').filter(function () {
        return $.trim(this.value) != ""
    }).length) {
        alert("Empty!");
        e.preventDefault();
    }
});

答案 1 :(得分:1)

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

  

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

$('#dataFieldMapping').submit(function(event) {
    lst = $('input:text').filter(function(){
         this.value != "";
     });
    if(lst.length)
    {
       alert("Empty!");
       preventDefault();
    }
});