2014-01-31 42 views
1

以下是我的Signup.jsp。如果我输入有效的表单输入其工作正常。如果我输入错误的值,那么它显示错误,当我再次输入一些vlaue而不刷新页面并提交时,如果相同的字段有其他错误,那么旧错误和新错误都会显示出来。注册JSP页面在显示错误时出错

为前:如果在第一次我不输入任何名字,然后它会显示一个错误*请提供您的name.and如果我再给一些错误的值相同的字段都请提供您的第一个名称。 *请提供有效的名字。正在显示。

而当我* 重置这些错误仍然显示。如何将整个页面使用RESET按钮 *

<form action="RegisterServlet" method="post" name="Register" onSubmit="return validate()"> 
<table> 
<tr> 
<td>First Name* : </td> 
<td><input type="text" name="txtFname" id="fname" maxlength="30" onKeyup="capitalize(this)"/><br/> 
<span id="errorFirstNameMissing" style="display:none;"><font color="red">*Please provide your first name.</font></span> 
<span id="errorFirstNameInValid" style="display:none;"><font color="red">*Please provide a valid first name.</font></span> 
</td> 
</tr> 
<tr> 
<td>Last Name* : </td> 
<td><input type="text" name="txtLname" id="lname" maxlength="30" onKeyup="capitalize(this)"/><br/> 
<span id="errorLastNameMissing" style="display:none;"><font color="red">*Please provide your Last name.</font></span> 
<span id="errorLastNameInValid" style="display:none;"><font color="red">*Please provide a valid Last name.</font></span> 
</td> 
</tr> 
<tr> 
<td>Gender* : </td> 
<td><select name = "txtGender" id="gender"> 
<option value="unknown">Select your Gender</option> 
<option value="Male">Male</option> 
<option value="Female">Female</option> 
</select><br/> 
<span id="errorMissingGender" style="display:none;"><font color="red">*Please select a Gender.</font></span> 
</td> 
</tr> 
<tr> 
<td>Category* : </td> 
<td><select name = "txtCategory" id="category"> 
<option value="unknown">Select your Category</option> 
<option value="Affiliate">Affiliate</option> 
<option value="Client">Client</option> 
<option value="Admin">Admin</option> 
</select><br/> 
<span id="errorMissingCategory" style="display:none;"><font color="red">*Please select a Category.</font></span> 

</td> 
</tr> 
<tr> 
<td><script type="text/javascript" 
src="js/Calendar.js"></script> 
</td> 
</tr> 

<tr> 
<td>Age :</td> 
<td><input type=text name=txtAge id="ageId" readonly style="width: 20px;background-color:#D0D0D0;border:none"/>yrs.</td> 
</tr> 

<tr> 
<td>Address* : </td> 
<td><textarea rows="5" name="txtAddr" id="addr" cols="30"></textarea><br/> 
<span id="errorMissingAddress" style="display:none;"><font color="red">*Please provide a valid Address.</font></span> 
</td> 
</tr> 
<tr> 
<td>State* :</td> 
<td> <select onchange="print_city('city',this.selectedIndex);" id="state" name ="txtState"></select><br/> 
<span id="errorMissingState" style="display:none;"><font color="red">*Please select a state.</font></span> 

</td> 
</tr> 
<tr> 
<td>City* :</td> <td><select name ="txtCity" id ="city"></select> 
     <script language="javascript">print_state("state");</script><br/> 
<span id="errorMissingCity" style="display:none;"><font color="red">*Please select a city.</font></span> 
</td> 
</tr> 

<tr> 
<td>Pincode* : </td> 
<td><input type="text" name="txtPin" id="pin"/><br/> 
<span id="errorMissingPinCode" style="display:none;"><font color="red">*Please provide your Pincode.</font></span> 
<span id="errorPinCodeInvalid" style="display:none;"><font color="red">*Please provide a valid Pincode.</font></span> 
</td> 
</tr> 
<tr> 
<td>e-Mail* : </td> 
<td><input type="text" name="txtEmail" id="email"/><br/> 
<span id="errorMissingEmail" style="display:none;"><font color="red">*Please provide your emailId.</font></span> 
<span id="errorEmailInvalid" style="display:none;"><font color="red">*Please provide a valid emailId.</font></span> 
</td> 
</tr> 
<tr> 
<td>Contact Number : </td> 
<td><input type="text" name="txtStd" id="std" maxlength="6" style="width: 40px"/>-<input type="text" name="txtPhone" id="phone" maxlength="8"/><br/> 
<span id="errorStdCodeInvalid" style="visibility:hidden;"><font color="red">*Please provide a valid std code.</font></span> 
<span id="errorPhoneNoInvalid" style="visibility:hidden;"><font color="red">*Please provide a valid contact no.</font></span> 
</td> 
</tr> 

<tr> 
<td>Mobile Number* : </td> 
<td>+91-<input type="text" name="txtMobile" id="mobile" maxlength="10"/><br/> 
<span id="errorMissingMobileNo" style="display:none;"><font color="red">*Please provide your mobile number.</font></span> 
<span id="errorMobileNoInvalid" style="display:none;"><font color="red">*Please provide a valid mobile number.</font></span> 
</td> 
</tr> 
</table> 
<br/> 
<p><font color="red">Note: All the fields marked with * are mandatory.</font></p> 
<p><input type="checkbox" name="chkAgree" onclick="EnableSubmit(this)" /><font color="green"> I here by declare that the above data entered by me is true to my knowledge.</font> </p> 
<br/> 

<div class="style2"> 
<table> 
<tr> 
<td><button type="submit" id="submit" disabled style="width: 80px;height: 40px">Submit</button></td> 
<td><div class="divider"></div></td> 
<td><button type="reset" style="width: 80px;height: 40px">Reset</button></td> 
</tr> 
</table> 
</div> 
</form> 

下面是我的validate()的JavaScript代码重置

 function validate(){ 
var valid = true; 
var validationMessage = 'Please correct the following errors:\r\n'; 
var regex=/^([A-Za-z]{3,30}$)/; 
var lregex=/^([A-Za-z]{1,30}$)/; 
var pinRegex=/^[0-9]{0,6}$/; 
var emailRegex=/^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; 
var stdRegex=/^[0-9]{0,6}$/; 
var phoneRegex=/^[0-9]{0,8}$/; 
var mobileRegex=/^[0-9]{10}$/; 
var dateRegex=/^\d{2}\/\d{2}\/\d{4}$/; 



if (document.getElementById('fname').value.length == 0) { 
validationMessage = validationMessage + ' - First name is missing\r\n'; 
document.getElementById('errorFirstNameMissing').style.display=''; 
valid = false; 
} 
else if(!regex.test(document.getElementById('fname').value)){ 
    validationMessage = validationMessage + ' - First name is not valid can contain only letters from A-z and a-z\r\n'; 
    document.getElementById('errorFirstNameInValid').style.display=''; 
    valid = false; 
    } 
else{ 
    document.getElementById('errorFirstNameMissing').style.display='none'; 
    document.getElementById('errorFirstNameInValid').style.display='none'; 
} 



if (document.getElementById('lname').value.length == 0){ 
validationMessage = validationMessage + ' - Last name is missing\r\n'; 
document.getElementById('errorLastNameMissing').style.display=''; 
valid = false; 
} 
else if(!lregex.test(document.getElementById('lname').value)){ 
    validationMessage = validationMessage + ' - Last name is not valid can contain only letters from A-z and a-z\r\n'; 
    document.getElementById('errorLastNameInValid').style.display=''; 
    valid = false; 
    } 
else { 
    document.getElementById('errorLastNameMissing').style.display='none'; 
    document.getElementById('errorLastNameInValid').style.display='none'; 
} 

if (document.getElementById('gender').value == 'unknown'){ 
validationMessage = validationMessage + ' - Please select a gender\r\n'; 
document.getElementById('errorMissingGender').style.display=''; 
valid = false; 
} 
else { 
    document.getElementById('errorMissingGender').style.display='none'; 
    } 

if (document.getElementById('category').value == 'unknown'){ 
    validationMessage = validationMessage + ' - Please select a category\r\n'; 
    document.getElementById('errorMissingCategory').style.display=''; 
    valid = false; 
    } 
else { 
    document.getElementById('errorMissingCategory').style.display='none'; 
    } 

if ((document.getElementById('SnapHost_Calendar').value.length == 0)){ 
validationMessage = validationMessage + ' - Date of Birth is missing\r\n'; 
document.getElementById('errorMissingDOB').style.display=''; 
valid = false; 
} 
else if(!dateRegex.test(document.getElementById('SnapHost_Calendar').value)){ 
    validationMessage = validationMessage + ' - Date is not valid should be in the format mm/dd/yyyy\r\n'; 
    document.getElementById('errorDateInvalid').style.display=''; 
    valid = false; 
} 
else { 
    document.getElementById('errorMissingDOB').style.display='none'; 
    document.getElementById('errorDateInvalid').style.display='none'; 
    } 

if (document.getElementById('addr').value.length == 0){ 
    validationMessage = validationMessage + ' - Address is missing\r\n'; 
    document.getElementById('errorMissingAddress').style.display=''; 
    valid = false; 
    } 
else { 
    document.getElementById('errorMissingAddress').style.display='none'; 
    } 

if (document.getElementById('state').value == ''){ 
    validationMessage = validationMessage + ' - Please select a state\r\n'; 
    document.getElementById('errorMissingState').style.display=''; 
    valid = false; 
    } 
else { 
    document.getElementById('errorMissingState').style.display='none'; 
    } 


if (document.getElementById('city').value == ''){ 
    validationMessage = validationMessage + ' - Please select a city\r\n'; 
    document.getElementById('errorMissingCity').style.display=''; 
    valid = false; 
    } 
else { 
    document.getElementById('errorMissingCity').style.display='none'; 
    } 

if (document.getElementById('pin').value.length == 0){ 
    validationMessage = validationMessage + ' - Pin code is missing\r\n'; 
    document.getElementById('errorMissingPinCode').style.display=''; 
    valid = false; 
    } 
else if(!pinRegex.test(document.getElementById('pin').value)){ 
    validationMessage = validationMessage + ' - Pin code is not valid can contain only digits from 0-9\r\n'; 
    document.getElementById('errorPinCodeInvalid').style.display=''; 
    valid = false; 
    } 
else{ 
    document.getElementById('errorMissingPinCode').style.display='none'; 
    document.getElementById('errorPinCodeInvalid').style.display='none'; 
} 


if (document.getElementById('email').value.length == 0){ 
validationMessage = validationMessage + ' - Email is missing\r\n'; 
document.getElementById('errorMissingEmail').style.display=''; 
valid = false; 
} 
else if(!emailRegex.test(document.getElementById('email').value)){ 
    validationMessage = validationMessage + ' - Email is not valid\r\n'; 
    document.getElementById('errorEmailInvalid').style.display=''; 
    valid = false; 
    } 
else{ 
    document.getElementById('errorMissingEmail').style.display='none'; 
    document.getElementById('errorEmailInvalid').style.display='none'; 
} 

if((document.getElementById('std').value.length!=null)&& !stdRegex.test(document.getElementById('std').value)){ 
    validationMessage = validationMessage + ' - std code is not valid\r\n'; 
    document.getElementById('errorStdCodeInvalid').style.visibility='visible'; 
    valid = false; 
    } 
else{ 
    document.getElementById('errorStdCodeInvalid').style.display='none'; 
    } 

if((document.getElementById('phone').value.length!=null)&& !phoneRegex.test(document.getElementById('phone').value)){ 
    validationMessage = validationMessage + ' - Phone Nummber is not valid can contain digits only from 0-9\r\n'; 
    document.getElementById('errorPhoneNoInvalid').style.display=''; 

    valid = false; 
    } 
else{ 
    document.getElementById('errorPhoneNoInvalid').style.display='none'; 
    } 

if (document.getElementById('mobile').value.length == 0){ 
    validationMessage = validationMessage + ' -Mobile number is missing\r\n'; 
    document.getElementById('errorMissingMobileNo').style.display=''; 
    valid = false; 
    } 
else if(!mobileRegex.test(document.getElementById('mobile').value)){ 
    validationMessage = validationMessage + ' - Mobile Nummber is not valid can contain digits only from 0-9\r\n'; 
    document.getElementById('errorMobileNoInvalid').style.display=''; 
    valid = false; 
    } 
else{ 
    document.getElementById('errorMissingMobileNo').style.display='none'; 
    document.getElementById('errorMobileNoInvalid').style.display='none'; 
} 


if (valid == false){ 
alert(validationMessage); 
} 
return valid; 
} 

请有人帮我解决这个问题。

+0

您是否尝试过使用HTML5的“required”属性以及关联的HTML5表单验证属性?这看起来不像一个合理的JSP。您可能也想看看Jakarta Commons-Validator库。请参阅http://commons.apache.org/proper/commons-validator/。 –

+0

您需要首先在提交时隐藏所有错误消息,然后验证并显示错误消息。 –

+0

@Shiju K巴布是新的JavaScript可以解释我的代码?不会显示:没有做你说的? – user3222718

回答

1
span id="errorFirstNameMissing" style="display:none 
span id="errorFirstNameInValid" style="display:none 

在JSP中,你是不是在页面加载时显示错误消息。

时,没有给定值,

document.getElementById('errorFirstNameMissing').style.display=''; 

你使其可见。现在

当值无效,要启用其显示:

document.getElementById('errorFirstNameInValid').style.display=''; 

可是你有没有隐藏缺失值以前的错误消息。它仍然处于显示模式。这就是为什么当没有页面刷新时显示两个消息。

SOLUTION:

您可以在每次输入验证功能时隐藏这些消息。

function validate(){ 
document.getElementById('errorFirstNameInValid').style.display='none'; 
document.getElementById('errorFirstNameMissing').style.display='none'; 

因此,每次输入验证功能时,它会隐藏所有错误信息,并仅显示一个合适的根据各自的验证。

您也可以在复位功能中使用相同的方法来隐藏复位时的所有错误消息。

+0

所以如果我的理解是正确的所有我的其他块在validate()应该这样style.display =无;正确... – user3222718

+0

如果你想让它进入“其他”,你必须让它们隐藏起来。但在你解释的情况下,单独的“其他”将无法正常工作。因此,您还需要在输入验证功能时将其隐藏起来。 – Jobin

+0

不,我改变我的代码,因为你说,但错误只停止显示。 – user3222718