【问题标题】:Validate a form only if every input is empty仅当每个输入为空时才验证表单
【发布时间】:2018-10-10 17:29:09
【问题描述】:

嗯,这个问题不言自明。我一直在寻找一段时间,并没有找到一种合适的方法来进行这种验证。

如果所有输入为空,我需要做的就是运行一条错误消息。如果其中一个已填写,那么我不需要停止提交表单。

我的想法是这样的:

function checkForm() {
    $('input').each(function(){
        if( $(this).val() == "" ){
          return false;
        }
    });
});

但是,如果至少有一个没有数据的输入,这将停止我的表单。

有什么想法吗?提前致谢。

【问题讨论】:

    标签: javascript forms validation input


    【解决方案1】:

    颠倒你的逻辑。 IE。如果输入有值则返回true,否则返回false

    function checkForm() {
        $('input').each(function() {
            if ($(this).val() !== '') {
                return true;
            }
        });
    
        return false;
    };
    

    【讨论】:

      【解决方案2】:

      反转您的逻辑,因为您想检查一个输入字段的值是否为非空。

      此外,您可能希望从实际函数中返回,而不是从无效的回调中返回。

      function checkForm() {
          let bool = false;
          $('input').each(function(){
              if( $(this).val() !== '' ){
                bool = true;
              }
          });
          console.log(bool);
          return bool;
      };
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <input type="text">
      <input type="text">
      <input type="text">
      <button onclick="checkForm()">check</button>

      【讨论】:

      • 两个答案都是正确的,但是这里指定的回调问题使这个成为最好的一个。再次感谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-20
      • 1970-01-01
      • 2021-04-18
      • 1970-01-01
      • 2019-02-08
      相关资源
      最近更新 更多