簡體   English   中英

無法獲取JavaScript方法來驗證我的HTML表單

[英]Can't get JavaScript method to validate my HTML form

我正在嘗試使用javascript方法來驗證我的表單,但是它似乎無法正常工作。 即使提交了空表單,也不會彈出對話框警告我任何錯誤。 可能是什么錯誤? (請注意:JS文件有一個為時間戳定義的方法,目前我不在form標記中使用該方法。我還需要一些幫助來調用兩個函數。)

這是代碼:

 function setDate() { document.getElementById('date').value = new Date(); } function validateForm() { var a = document.getElementById('name').value; var b = document.getElementById("contact1").value; var blen = b.length; var c = document.getElementById("address1").value; var d = document.getElementById("stblimit").value; var dlen = d.length; var e = document.getElementById("creditlimit").value; var f = document.getElementById("commission").value; var g = document.getElementById("servicecharges").value; //DATE var h = document.forms["addRetailer"]["date"].value; if (a == null || a == "") { alert("Name must be filled out"); return false; } else if (b == null || b == "" || blen == 0 || blen > 10 || blen < 10) { alert("Enter a valid number"); return false; } else if (c == null || c == "") { alert("Primary Address must be filled out"); return false; } else if (d == null || d == "" || dlen == 0 || dlen < 0) { alert("Set Box Top Limit must be filled with a valid number"); return false; } else if (e == null || e == "") { alert("Credit Limit must be filled out"); return false; } else if (f == null || f == "") { alert("Commission Percentage must be filled out"); return false; } else if (g == null || g == "") { alert("Service Charges must be filled out"); return false; } } 
 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <script src="formvalidation.js" type="text/javascript"></script> <title>Register Retailer</title> </head> <body> <h1>Retailer Information</h1> <form name="addRetailer" action="RetailerController" method="post" onsubmit="return validateForm()"> <table> <tr> <td>Name</td> <td> <input type="text" name="name" id="name"></input> </td> </tr> <tr> <td>Contact Number 1</td> <td> <input type="text" name="contact1" id="contact1"></input> </td> </tr> <tr> <td>Contact Number 2</td> <td> <input type="text" name="contact2" id="contact2"></input> </td> </tr> <tr> <td>Address Line 1</td> <td> <input type="text" name="address1" id="address1"></input> </td> </tr> <tr> <td>Address Line 2</td> <td> <input type="text" name="address2" id="address2"></input> </td> </tr> <tr> <td>City</td> <td> <input type="text" name="city" id="city"></input> </td> </tr> <tr> <td>State</td> <td> <input type="text" name="state" id="state"></input> </td> </tr> <tr> <td>Pin Code</td> <td> <input type="text" name="pin" id="pin"></input> </td> </tr> <tr> <td>Set Top Box Limit</td> <td> <input type="text" name="stblimit" id="stblimit" value="0"></input> </td> </tr> <tr> <td>Credit Limit</td> <td> <input type="text" name="creditlimit" id="creditlimit"></input> </td> </tr> <tr> <td>Commission Percentage</td> <td> <input type="text" name="commission" id="commission" value="0.0"></input> </td> </tr> <tr> <td>Service Charges</td> <td> <input type="text" name="servicecharges" id="servicecharges"></input> </td> </tr> <tr> <td>Date of Registration</td> <td> <input type="text" name="date" id="date"></input> </td> </tr> <tr> <td>&nbsp;</td> <td> <input type="hidden" value="registerCustomer" name="action"></input> <input type="submit" value="Register"></input> </td> </tr> </table> </form> <br> <br>Click <a href="mainPage.html"> Home </a>To Return To The Main Screen </body> </html> 

編輯:

這是我的Eclipse IDE工作區的屏幕截圖。 我的js文件和html文件不在同一子文件夾中,盡管它們位於“網絡內容”下。 這可能是問題嗎?

Eclipse IDE工作區的屏幕截圖

使用Chrome,它似乎對我有用:

在此處輸入圖片說明

我唯一更改的是刪除了指向外部JS文件的鏈接。 錯誤可能存在,並阻止您的代碼運行。 檢查該文件。

您可能未正確鏈接JS文件。

查看您的屏幕截圖,我注意到您正在使用Tomcat和Java EE,它們在Web服務器上的目錄遵循Unix樣式的語法。

您的目錄:

-Webcontent/
    -WEB-INF/
        +addRetailer
    -JavaScript/
        +validateForm.js

因此,您的HTML文件位於Webcontent中的WEB-INF中,而表單驗證程序位於javascript中,也位於webcontent中。

為此,我有三種解決方案:

  1. 將JavaScript文件夾移至WEB-INF並將腳本引用更改為:“ JavaScript / formvalidation.js”
  2. 更改腳本引用以使用雙點“ ..”將目錄層“向上”跳轉到“ ../JavaScript/formvalidator.js”
  3. 改用HTML5的表單驗證,它不需要JavaScript。 而且更加整潔。 你可以找到Mozilla的開發網絡上的細節在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM