我有这段 JavaScript 代码,其中有一个调用其他函数的函数。问题是即使字段为空,input.html 表单也会被提交。如果我不在字段中提供任何输入,则会显示错误消息,但同时会提交表单。有很多类似的问题,但没有一个有帮助,因为它们没有在函数内调用函数..对此可能的解决方案是什么?
function blankos() {
var p = document.getElementById("windows");
var q = document.getElementById("linux");
if ((p.checked == false) && (q.checked == false)) {
document.getElementById("enteros").innerHTML = "Select an option";
return false;
} else if ((p.checked == true) || (q.checked == true)) {
document.getElementById("enteros").innerHTML = "";
return true;
}
}
function blankfreq() {
var r = document.getElementById("biannual");
var s = document.getElementById("monthly");
if ((r.checked == false) && (s.checked == false)) {
document.getElementById("enterfreq").innerHTML = "Select an option";
return false;
} else if ((r.checked == true) || (s.checked == true)) {
document.getElementById("enterfreq").innerHTML = "";
return true;
}
}
function blankhour() {
var i = document.getElementById("one");
var ii = document.getElementById("two");
var iii = document.getElementById("four");
if ((i.checked == true) || (ii.checked == true) || (iii.checked == true)) {
document.getElementById("enterhour").innerHTML = "";
return true;
}
return false;
}
function blank() {
blankos();
blankfreq();
blankhour();
checkselect();
}
<form onSubmit="return blank()" name="input" id="input" method="post" action="cgi-bin/review.cgi" >
最佳答案
blank()
不返回任何内容。尝试:
function blank() {
return blankos() && blankfreq() && blankhour() && checkselect();
}
这只会报告检测到的第一个错误。如果您希望报告所有这些,请先将它们分配给变量。
function blank() {
var ok1 = blankos();
var ok2 = blankfreq();
var ok3 = blankhour();
var ok4 = checkselect();
return ok1 && ok2 && ok3 && ok4;
}
不过,我还没有查看所有单独的验证函数。您可能也有需要修复的错误。
关于javascript - 在函数返回 true 之前不要提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48596847/