我正在尝试使用 JavaScript 验证表单,但我有点坚持在字段旁边显示一条消息说“此字段是必需的”。我该怎么做呢?抱歉,我对 JavaScript 很陌生。
这是我的js代码:
var allFieldsRequired = true;
function specialPostcode(postalCode)
{
var re = /^[TA]{2}([1-14]|22|15){1,2}/;
if(re.test(postalCode))
{
alert("You have been entered into a competition to win special prize!!");
}
}
function validatePostcode(postalCode)
{
var re = /^[A-Z]{2}\d{1,2}\s\d{1}[A-Z]{2}$/;
if(!re.test(postalCode))
{
alert('Postcode is not valid');
}
return re.test(postalCode);
}
function validateCard(promoCardNumber)
{
var re = /^[A-Z]{1}([A-Z]|\d){4}\s?([A-Z]|\d){5}\s?([A-Z]|\d){3}\d{1}$/;
if(!re.test(promoCardNumber))
{
alert('Promotional card number is not valid');
}
return re.test(promoCardNumber);
}
function validate(val)
{
if(val == "")
{
return false;
}
else
{
return true;
}
}
function verification(orderForm)
{
//set boolean flag
var valid = true;
if(allFieldsRequired)
{
// validations
if(valid)
{
valid = validatePostcode(orderForm.postalCode.value);
}
if(valid)
{
valid = validateCard(orderForm.promoCardNumber.value);
}
if(valid)
{
valid = validate(orderForm.firstName.value);
}
if(valid)
{
valid = validate(orderForm.surname.value);
}
if(valid)
{
valid = validate(orderForm.phoneNumber.value);
}
if(valid)
{
valid = validate(orderForm.streetName.value);
}
if(valid)
{
valid = validate(orderForm.city.value);
}
if(valid)
{
valid = validate(orderForm.billEmailAddress.value);
}
if(valid)
{
valid = validate(orderForm.billPhoneNumber.value);
}
if(valid)
{
valid = validate(orderForm.billCardNumber.value);
}
if(valid)
{
specialPostcode(orderForm.postalCode.value);
}
}
else
{
// validations
if(valid)
{
valid = validatePostcode(orderForm.postalCode.value);
}
if(valid)
{
valid = validateCard(orderForm.promoCardNumber.value);
}
if(valid)
{
specialPostcode(orderForm.postalCode.value);
}
}
return valid;
} // end of verification
这是我的表单的 HTML 代码:
<form id="orderForm" method="post" action="x">
<table id="formTable" cellpadding="5">
<tr>
<td>
<h3>Shipping and Billing Information</h3>
</td>
<td> </td>
</tr>
<tr>
<td>First Name</td>
<td><input id="firstname" type="text" name="firstName" maxlength="30" /></td>
</tr>
<tr>
<td>Surname</td>
<td><input id="surname" type="text" name="surname" maxlength="30" /></td>
</tr>
<tr>
<td>Contact Telephone Number</td>
<td><input id=phoneNumber" type="text" name="phoneNumber" maxlength="30" /></td>
</tr>
<tr>
<td>Street Name</td>
<td><input id="streetName" type="text" name="streetName" maxlength="30" /></td>
</tr>
<tr>
<td>City</td>
<td><input id="city" type="text" name="city" maxlength="30" /></td>
</tr>
<tr>
<td>Postal Code</td>
<td><input id="postalCode" type="text" name="postalCode" maxlength="30" /></td>
</tr>
<tr>
<td>Email address</td>
<td><input id="emailAddress" type="text" name="emailAddress" maxlength="30" /></td>
</tr>
<tr>
<td>Contact Telephone Number</td>
<td><input id="billPhoneNumber" type="text" name="billPhoneNumber" maxlength="30" /></td>
</tr>
<tr>
<td>Promotional card</td>
<td><input id="promoCardNumber" type="text" name="promoCardNumber" maxlength="30" /></td>
</tr>
<tr>
<td>Credit Card Number</td>
<td><input id="billCardNumber" type="text" name="billCardNumber" maxlength="30" /></td>
</tr>
<tr>
<td>Credit Card Type</td>
<td>
<select id="billCardType" name="billCardType">
<option value="...">
Choose your card...
</option>
<option value="visa">
Visa
</option>
<option value="mastercard">
Mastercard
</option>
</select>
</td>
</tr>
<tr>
<td>Instructions</td>
<td><textarea id="instructions" name="instructions" rows="8" cols="30">Enter your requirements here or comments.</textarea></td>
</tr>
<tr>
<td colspan="2"><input id="submit" type="submit" name="Submit" value="Submit" onclick="return verification(document.getElementById('orderForm'));" /></td>
</tr>
</table>
</form>
在每个字段附近添加一个范围,以便您可以将其用于验证消息:
<td>First Name</td>
<td>
<input id="firstname" type="text" name="firstName" maxlength="30" />
<span id="firstname_error"/>
</td>
之后,只需在此处添加错误消息,而不是:
alert('You need to complete this field')
你会使用:
document.getElementById('firstname_error').innerHTML = 'You need to complete this field'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)