首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jQuery -验证

jQuery -验证
EN

Stack Overflow用户
提问于 2018-06-06 02:35:35
回答 1查看 31关注 0票数 -2

我的验证过程出了点问题。我没有使用标准的“提交”按钮,而是让<span class="button" id="print">Print</span>和jQuery监听点击。这是我在点击“按钮”时得到的验证码:

代码语言:javascript
复制
var validation = "";
function validate() {
  $("#servDetails").find("input").each(function () {
    if ($(this).prop("required") && $(this).val() == "") {
      validation = false;
      }
    else {
      validation = true;
      }
    });

  $("#checklist").find("input[required]").each(function () {
    if ($(this).prop("required") && $(this).val() == "") {
      validation = false;
      }
    else {
      validation = true;
      }
    });
  }

$("#print").on("click", function() {
  validate();

  if (validation == false) {
    alert("Please fill out all required inputs!");
    return false;
    }
  else {
    window.print();
    }
  });

如果我在没有填写任何内容的情况下单击该按钮(所有项目均为空),我会得到预期的alert

如果我填写了所有必需的元素,它就会像预期的那样弹出打印对话框。

但是,如果我将一些框留空,而另一些框已正确填充,它仍然会打印出来,而不是像我需要的那样给我提供alert。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-06 04:39:19

必须重写代码,或者最好用任何验证插件替换它。

但在您的情况下,我想,您只是忘了返回,以防您发现一些未填充的字段。因此,如果您有任何填充输入,它将覆盖您的验证变量。

最简单的解决方案是删除else {validation = true;}代码块,然后添加

代码语言:javascript
复制
validation = true;

在函数的乞求中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50706831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档