JavaScript 表單驗證

JavaScript 可用來在資料送到伺服器前對 HTML 表單中的這些輸入資料進行驗證。

表單資料經常需要使用 JavaScript 來驗證其正確性:

  • #驗證表單資料是否為空?

  • 驗證輸入是否是正確的email位址?

  • 驗證日期是否輸入正確?

  • 驗證表單輸入內容是否為數字型?


必填(或必填)項目

下面的函數用來檢查使用者是否已填寫表單中的必填(或必填)項目。假如必填或必選項為空,那麼警告框會彈出,並且函數的回傳值為false,否則函數的回傳值則為true(表示資料沒有問題):

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>php中文网(php.cn)</title>
</head>
<head>
    <script>
        function validateForm(){
            var x=document.forms["myForm"]["fname"].value;
            if (x==null || x==""){
                alert("姓必须填写");
                return false;
            }
        }
    </script>
</head>
<body>
<form name="myForm" action="" onsubmit="return validateForm()" method="post">
    姓: <input type="text" name="fname">
    <input type="submit" value="提交">
</form>
</body>
</html>

執行程式嘗試一下


E-mail 驗證

#下面的函數檢查輸入的資料是否符合電子郵件地址的基本語法。

意思是說,輸入的資料必須包含 @ 符號和點號(.)。同時,@ 不可以是郵件地址的首字符,並且@ 之後需有至少一個點號:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>php中文网(php.cn)</title>
</head>
<head>
    <script>
        function validateForm(){
            var x=document.forms["myForm"]["email"].value;
            var atpos=x.indexOf("@");
            var dotpos=x.lastIndexOf(".");
            if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length){
                alert("不是一个有效的 e-mail 地址");
                return false;
            }
        }
    </script>
</head>
<body>
<form name="myForm" action="" onsubmit="return validateForm();" method="post">
    Email: <input type="text" name="email">
    <input type="submit" value="提交">
</form>
</body>
</html>

運行程序嘗試一下



##

繼續學習
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <head> <script> function validateForm(){ var x=document.forms["myForm"]["fname"].value; if (x==null || x==""){ alert("姓必须填写"); return false; } } </script> </head> <body> <form name="myForm" action="" onsubmit="return validateForm()" method="post"> 姓: <input type="text" name="fname"> <input type="submit" value="提交"> </form> </body> </html>