gpt4 book ai didi

javascript - 使用 JavaScript 进行表单验证

转载 作者:行者123 更新时间:2023-11-30 09:09:46 25 4
gpt4 key购买 nike

我正在尝试使用 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>&nbsp;</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'

关于javascript - 使用 JavaScript 进行表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1165691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com