表格验证在检查条件后没有提醒

时间:2014-10-23 12:56:45

标签: 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>

除非我犯了错误(事后我肯定会很明显),不管是否有任何条件是真是假,都不应该弹出第二个警告?

1 个答案:

答案 0 :(得分:1)

您不需要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;
}