javascript - 注册JSP页面显示错误时出错

标签 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 中的 validate() 代码

        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;
}

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

最佳答案

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

在 jsp 中,页面加载时不会显示错误消息。

何时,未给出值,

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

您正在使其可见。

现在,当值无效时,您将启用其显示:

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

但您尚未隐藏之前的缺失值错误消息。它仍处于显示模式。这就是为什么在没有页面刷新时会显示两条消息的原因。

解决方案:

您可以在每次进入验证函数时隐藏这些消息。

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

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

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

关于javascript - 注册JSP页面显示错误时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21473338/

相关文章:

c# - $.post 中的 URL 包含多个网站

java - 跨不同jsp页面的变量

javascript - 聚合物 firebase..使用密码和电子邮件进行身份验证

javascript - 从地址栏中删除 # 片段标识符

JavaScript:用于查找链表节点的递归函数返回错误的节点

Javascript、正则表达式和 {n,m}

xml - Tomcat 6 到 Tomcat 7 导致上下文路径停止协作

java - 如何检测企业 Java 项目(Java + JSP + Javascript)中的无效代码?

java - 如何不使用GET方法从href传递参数?

java - 使用 jsp dao 和 servlet 在数据库中仅插入 4 行中的几行