2013-11-22 62 views
1

我正在使用警報的JavaScript驗證。完整的代碼是:如何把錯誤在javascript驗證

<html> 
<head> 
<title>Form Validation</title> 
<script type="text/javascript"> 
<!-- 
function validateEmail() 
{ 

    var emailID = document.myForm.EMail.value; 
    atpos = emailID.indexOf("@"); 
    dotpos = emailID.lastIndexOf("."); 
    if (atpos < 1 || (dotpos - atpos < 2)) 
    { 
     alert("Please enter correct email ID") 
     document.myForm.EMail.focus() ; 
     return false; 
    } 
    return(true); 
} 

function validate() 
{ 
    if(document.myForm.Name.value == "") 
    { 
    alert("Please provide your name!"); 
    document.myForm.Name.focus() ; 
    return false; 
    } 
    if(document.myForm.EMail.value == "") 
    { 
    alert("Please provide your Email!"); 
    document.myForm.EMail.focus() ; 
    return false; 
    }else{ 
    // Put extra check for data format 
    var ret = validateEmail(); 
    if(ret == false) 
    { 
      return false; 
    } 
    } 
    if(document.myForm.Zip.value == "" || 
      isNaN(document.myForm.Zip.value) || 
      document.myForm.Zip.value.length != 5) 
    { 
    alert("Please provide a zip in the format #####."); 
    document.myForm.Zip.focus() ; 
    return false; 
    } 
    if(document.myForm.Country.value == "-1") 
    { 
    alert("Please provide your country!"); 
    return false; 
    } 
    return(true); 
} 
//--> 
</script> 
</head> 
<body> 
<form action="/cgi-bin/test.cgi" name="myForm" onsubmit="return(validate());"> 
<table cellspacing="2" cellpadding="2" border="1"> 
<tr> 
    <td align="right">Name</td> 
    <td><input type="text" name="Name" /></td> 
</tr> 
<tr> 
    <td align="right">EMail</td> 
    <td><input type="text" name="EMail" /></td> 
</tr> 
<tr> 
    <td align="right">Zip Code</td> 
    <td><input type="text" name="Zip" /></td> 
</tr> 
<tr> 
<td align="right">Country</td> 
<td> 
<select name="Country"> 
    <option value="-1" selected>[choose yours]</option> 
    <option value="1">USA</option> 
    <option value="2">UK</option> 
    <option value="3">INDIA</option> 
</select> 
</td> 
</tr> 
<tr> 
<td align="right"></td> 
<td><input type="submit" value="Submit" /></td> 
</tr> 
</table> 
</form> 
</body> 
</html> 

的問題是,我想錯誤的div,而不是alerts.how我該追加的div錯誤的類和成功,而不是警報?請幫助。

+0

我不認爲你應該表現發生錯誤時的警報。你應該拋出一個'Exception();'並將其捕獲到頂層。 – Sebas

回答

0

我猜你想顯示顯示超過警戒

把一個div在頁面的最下方有警報display:none

歐洲工商管理學院的錯誤的更好的方法只是用

ShowError('yourmsg'); 

function ShowError(msg){ 
setTimeOut(function(){ 
document.getElementById('error').innerHTML = msg; 
},4000); 
} 
0

當你開始驗證有一個單一的標誌,如blIsFormValid,並保持單個字符串var strErrorMsg

在驗證表單時,如果遇到單個驗證錯誤集blIsFormValidfalse。接下來,無論您何時遇到驗證錯誤,請將該錯誤寫入strErrorMsg

例如:

function validate() 
{ 
    var blIsFormValid = true; 
    var strErrMsg = ''; 
    if(document.myForm.Name.value == "") 
    { 
     blIsFormValid = false; 
     strErrMsg += "Please enter your name. <br />";  
    } 
    if(isEmailValid(document.myForm.Email.value)) 
    { 
     blIsFormValid = false; 
     strErrMsg += "Please enter a valid email. <br />";  
    } 
    // Add the end checkk... 

    is(!blIsFormValid) 
    { 
     document.getElementById('errDiv').innerHTML = strErrMsg; 

    } 
    return blIsFormValid; 
} 

在最後檢查的blIsFormValid布爾值,並把它放在你的錯誤股利。

+0

如果名稱或電子郵件都錯了,那麼它會打印在Div標籤.....我認爲只有電子郵件錯誤.. –

+0

@KuldeepChoudhary,檢查更新的答案。只是連接。 –

+0

是的,現在它看起來更好...好的........ –

0

首先,你正在使用的表結構中所有的,我覺得列表DIV標籤裏面好....這將很容易peresent數據.......

現在我就正在添加點......使用量程標籤附近的每一個輸入框,像

<tr> 
    <td align="right">Name</td> 
    <td><input type="text" name="Name" /></td> 
    <span id="nameError"></span> 
</tr> 

或Java的腳本上跨度Id..Like定義錯誤此

if(document.myForm.Name.value == "") 
{ 
    // alert("Please provide your name!"); 
    document.getElementById("nameError").innerHTML="Plz provide your name "; 
    document.myForm.Name.focus() ; 
    return false; 
}