表单验证在检查条件后未发出警报

form validation not alerting after checking conditions

本文关键字:验证 检查 条件 表单      更新时间:2023-09-26

我试图用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;
}