2013-02-26 185 views
1

我想創建一個表單提交,並在表單提交之前,我想驗證憑據。JavaScript表單驗證

都在我這,到目前爲止

HTML格式的XHTML

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 
     <head> 
      <title> Registration Form</title> 
      <meta http-equiv="content-type" content="text/html; charset=utf-8"/> 
      <meta name="description" content="This is a form submission with validation"/> 
      <script type="text/javascript" src="validScript.js"></script> 
     </head> 

     <body> 
      <h1>Registration Form</h1> 
      <form id="registration" action="" onsubmit="return validation();" method="post" enctype="text/plain"> 
       <p>Name: <input type="text" name="name" id="name"/></p> 
       <p class="error">Email Address: <input type="text" name="emailAddress" id="emailAddress"/></p> 
       <p><input type="submit" name="submit" value="Submit"/></p> 
      </form> 
     </body> 

    </html> 

的JavaScript:

function validation() 
{ 
    var vname = document.registration.name; 

    if(nameValid(vname)) 
    { 
     return true; 
    } 
    return false; 
} 

function nameValid(vname) 
{ 
    var name_len = vname.value.length; 
    if (name_len == 0) 
    { 
     alert("Name is required"); 
     vname.focus(); 
     return false; 
    } 
return true; 
} 

我有問題,它不會顯示提醒用戶,他/她提示一個空的名字。我試圖驗證這個名字,在此之後,我會添加更多的函數來添加電子郵件地址和其他字段。請注意,這將稍後用於將表單通過電子郵件發送到域。有人可以幫我弄清楚這個問題嗎?

由於

回答

1

你的驗證功能是不正確,應該是:

function validation() 
{ 
    var vname = document.getElementById("name"); 

    if(nameValid(vname)) 
    { 
     return true; 
    } 
    return false; 
} 

對於訪問表單元素值使用的document.getElementById( 「ElementID」)值或使用JavaScript庫,例如Jquery

+0

謝謝。這工作。我有一種感覺可能是因爲我訪問的文檔屬性錯誤。 – user1709294 2013-02-26 16:23:33

0

form添加名稱= 「登記」,然後檢查。 它會提醒你想要的。

而原因是document.registration.name,其中註冊是表單名稱,而不是id。

0

如果」重新使用jQuery,我可以推薦這個插件:

http://validval.frebsite.nl/

我試圖相當一些驗證PLU在我遇到這個問題之前,我已經有過很多的驗證選項了,它對對話框來說並不是很花哨,這意味着很容易定製外觀和感覺。