我的验证过程出了点问题。我没有使用标准的“提交”按钮,而是让<span class="button" id="print">Print</span>
和jQuery监听点击。这是我在点击“按钮”时得到的验证码:
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
。有什么想法吗?
发布于 2018-06-06 04:39:19
必须重写代码,或者最好用任何验证插件替换它。
但在您的情况下,我想,您只是忘了返回,以防您发现一些未填充的字段。因此,如果您有任何填充输入,它将覆盖您的验证变量。
最简单的解决方案是删除else {validation = true;}
代码块,然后添加
validation = true;
在函数的乞求中。
https://stackoverflow.com/questions/50706831
复制相似问题