【问题标题】:How can I use jQuery to check all inputs for blanks?如何使用 jQuery 检查所有输入是否有空格?
【发布时间】:2014-04-27 10:23:41
【问题描述】:

我正在尝试使用 JQuery 来检查表单中的 所有 输入是否已填写。查看器单击一个按钮,如果输入已被填充,就会发生很酷的事情。但是,如果其中一个字段尚未填写,则查看器需要获取自定义警告消息。我想我快搞定了,但我需要一些帮助。

$(function() {
$("#btn_click").click(function() {
    if( $("input").val() == 0 ) {
    $("form").append('<span class=".warning">You didn\'t fill out all the fields!</span>');
}
    else {
        //Some cool stuff happens
    }
});

});

当我不填写任何输入时,我会收到带有警告的预期行为。那挺好的。但是,如果我填写第一个输入并将所有其他输入留空,“很酷的东西”就会运行。那很糟。我希望警告显示 any 的输入是否留空。如何让 JQuery 测试所有输入?

【问题讨论】:

标签: jquery validation input


【解决方案1】:
$(function() {
$("#btn_click").on('click',function(e) {
    e.preventDefault();
    $("input").each(function(){
        if(!$(this).val()){
           //error message
            return false;
        }else{
           //remaining code
       }
    });
  });
});  

【讨论】:

  • 这几乎可以工作,但现在当我在第一个输入中输入内容时,将其他内容留空并单击按钮,错误消息会触发并且剩余的代码会触发。我尝试在 HTML 中为这个特定表单上的所有输入提供一个类并执行 $('.required'),同样的行为。
【解决方案2】:

您可以为每个输入元素添加 ID,然后使用 Jquery 检查是否有任何一个为空白,然后显示 错误信息,否则做你很酷的事情

【讨论】:

  • 我会这样做,除非我正在编写脚本来处理网站上恰好存在的任何 html 文档。输入元素的数量取决于哪个 HTML 文档是活动的,所以我真的需要能够以某种方式检查恰好存在的输入元素。
【解决方案3】:

您可以使用以下方法进行检查:

if ($("input").length != $('input').filter(function () {
        return $.trim(this.value)
    }).length) {
    /* not all inputs filled */
}

【讨论】:

    【解决方案4】:

    $('input').val() 只会检索第一个输入的值。如果你想检查所有输入,你应该用each检查所有输入(只是一个例子,你可以使用其他的东西):

    $('btn_click').on('click', function (e) {
        e.preventDefault(e) ;
        var allOk = true ;
        $('input').each(function () { // Iterate over input
            if (!$('input').val()) { // Don't check against 0
                allOk = false ; // If the input isn't ok
            }
        }) ;
        if (!allOk) {
            // Warning message
        }
        else {
            // Some cool stuff
        }
    }) ;
    

    【讨论】:

    • 我尝试了这段代码,它的行为方式与我开始发布的代码相同。它似乎只测试第一个输入。当我填写第一个输入时,将其他输入留空并单击按钮,“很酷的东西”仍然会发生。
    【解决方案5】:

    试试$("input").filter(function(){return this.value==''}).length &gt; 0

    或者更好,因为您已经在使用 jQuery,所以使用一些复杂的验证插件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-18
      • 2020-09-16
      • 2015-01-11
      • 1970-01-01
      • 2016-07-30
      • 2010-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多