2011-03-16 74 views
0

我有一個過濾器方法實現(Django)。該過濾器基於下拉菜單中的一些選項以及在文本字段中輸入的文本進行工作。現在我想驗證表單。我試圖這樣做:但它沒有得到驗證。有人可以幫我解決這個問題嗎?驗證在HTML不工作

<form id="myform" action="http://10.1.0.90:8080/filter/" method="POST" > 
    Filter By: 
    <select name="choices" onsubmit="document.forms[0].submit()" style="color: black; background-color: #BDBDBD" > 
     <option value="">Select A Choice </option> 
     <option value="Name">Name</option> 
     <option value="Designation" >Designation</option> 
     <option value="EmployeeID" >EmployeeID</option> 
     <option value="Project" >Project</option> 
     <option value="DateOfJoin" >Date Of Join</option> 
    </select> 
    <input type="text" name="textField" style="color: black; background-color: #BDBDBD" > 
    <input type="submit" value="Go" onclick="validator()"> 
    </form> 
    <script type="text/javascript"> 
    function validator(){ 
     if (document.getElementById('Designation').value == "") 
     { 
      alert("Enter a value"); 
     } 
    } 
    </script> 
+1

請不要使用基於警報的驗證。如果alert()窗口彈出,這對用戶來說非常煩人;特別是如果這種情況發生在每個單一的錯誤字段。標記這些字段,例如用紅色標籤對用戶來說更加舒適。 – ThiefMaster 2011-03-16 07:28:22

+0

爲什麼在選擇框中添加onsubmit =「document.forms [0] .submit()」? – Vijay 2011-03-16 07:29:08

回答

2

我在http://jsbin.com/ayuzi4/

檢查建立一個演示如果有幫助。

的變化是

<select name="choices" onsubmit="document.forms[0].submit()" style="color: black; background-color: #BDBDBD" > 

<select name="choices" id="choices" style="color: black; background-color: #BDBDBD" > 

而且

<input type="submit" value="Go" onclick="validator()"> 

現在

<input type="submit" value="Go" onclick="return validator();"> 

和新的JS功能

function validator(){ 
    if (document.getElementById('choices').value === "") 
    { 
     alert("Enter a value"); 
     return false; 
    } 
} 
1
 
if (document.myform.getElementById('Designation').value == "") 
and add 
    return false; 
    } else { 
     return true; 
    } 

不知道....密切試試這個

1

看看你的代碼,並試圖瞭解不同的JavaScript功能都在做。

在提交按鈕上,您有一個調用驗證器的函數。但是在選擇框本身,你有一個提交表單的函數!因此,只要您單擊選擇框,表單就會被提交,所以驗證器功能永遠不會被調用。