注册JSP页面在显示错误时出错

时间:2014-01-31 05:49:57

标签: javascript jsp

以下是我的Signup.jsp。如果我输入有效表格输入其工作正常。如果我输入错误的值然后显示错误,当我再次键入一些vlaue而不刷新页面并提交时,如果相同的字段有其他错误,则再次显示旧错误和新错误。

对于例如:如果我第一次输入任何名字,那么它将显示错误*请提供您的名字。如果我再次给同一字段提供一些错误值*请提供名字。和*请提供有效的名字。正在显示。

当我* 重置 时,这些错误仍然会显示出来。如何使用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>

以下是我在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;
}

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

1 个答案:

答案 0 :(得分: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';

因此,每次进入验证功能时,它都会隐藏所有错误消息,并根据相应的验证仅显示相应的错误消息。

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

相关问题