javascript - 检查条件后表单验证不发出警报

标签 javascript html forms validation

我正在尝试使用 javascript 验证 HTML 表单,但由于没有弹出警报,我认为我的 checkSubmit() 函数没有被调用。但是,在函数开头添加附加警报后,它确实会触发,但在检查第一个条件后没有弹出进一步的警报。

<script language="javascript" type="text/javascript">
  function checkSubmit() {

     alert("Hello from Javascript!");
     if (document.getElementById("user").value.toString.length <1) {
        alert("Please enter a user name.");
        return false;
     }

     if (document.getElementById("location").value.toString.length <1) {
        alert("Please enter a location.");
        return false;
     }
     if (document.getElementById("depart").value.toString.length <1) {
        alert("Please enter a department.");
        return false;
     }
     if (document.getElementById("category").value.toString.length <1) {
        alert("Please enter a problem type.");
        return false;
     }
     if (document.getElementById("info").value.toString.length <1) {
        alert("Please enter a problem description.");
        return false;
     }
     alert("Hello from Javascript2!");
     return true;
   }   
</script>

<form name="submit" type="submit" method="POST" onsubmit="return checkSubmit();">

   [...]

   <input type="submit" name="submit" value="Submit" >
</form>

除非我犯了一个错误(我确信事后看来会很明显),否则无论任何条件是真还是假,难道不应该弹出第二个警报吗?

最佳答案

您不需要 toString 因为 .value 已经是一个字符串,而且您无论如何都错误地使用了它 - 您需要说 .toString ()。事实上,它返回函数定义,因此 .length 将是 0。正如您所说,您需要正确设置每个框的 id 属性。

function checkSubmit() {

    if (document.getElementById("user").value.length < 1) {
        alert("Please enter a user name.");
        return false;
     }

     if (document.getElementById("location").value.length < 1) {
        alert("Please enter a location.");
        return false;
     }

     if (document.getElementById("depart").value.length < 1) {
        alert("Please enter a department.");
        return false;
     }

     if (document.getElementById("category").value.length < 1) {
        alert("Please enter a problem type.");
        return false;
     }

     if (document.getElementById("info").value.length < 1) {
        alert("Please enter a problem description.");
        return false;
     }

     return true;
}

关于javascript - 检查条件后表单验证不发出警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26528637/

相关文章:

javascript - 无法获取目标元素

javascript - 获取为特定节点设置样式的样式表标签

javascript - 更改提交的表单中的值和 JQuery 序列化函数

javascript - 为什么将 "disabled"属性设置为 false 也会删除 "disabled"属性?

javascript - .find() 多选器不能添加prop

javascript - jquery ajax post 和 axios post 的区别

javascript - 提交表单后重定向(HTML、PHP)

javascript - Kineticjs 中的 container() 和 getContent() 有什么区别?

html - 为什么我的内容区域停在页脚之前?

javascript - 以html形式显示随机字符串