javascript - 在函数返回 true 之前不要提交表单

标签 javascript jquery html forms

我有这段 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/

相关文章:

javascript - VueJS 组件中的图像未加载

javascript - 如何在 javascript 中获取设备电池电量

javascript - HTML5 文件 API 使用 Ajax 上传多个图像

html - 如何将两个左对齐和右对齐文本的底部与父容器的底部对齐?

javascript - 如何使 iframe 在粘贴时适合我的父 contenteditable div?

javascript - 插入或拖动后重新索引对象数组的算法 'n' 放置顺序更改

javascript - 如何使用正则表达式搜索嵌套 div 的类名

javascript - Twitter 喜欢 ASP.Net 中的新推文计数通知

jquery - 为什么在 DataTable() 上调用 ajax.reload() 返回未定义?

javascript - 使用javascript从 anchor 标记获取自定义数据