Как проверить почтовый индекс в этой форме, используя JavaScript?
У меня нет такого опыта работы с JavaScript, и я некоторое время пытался заставить эту форму отображать предупреждающее сообщение, если почтовый индекс введен в неправильном формате, когда пользователь нажимает кнопку отправки. То, чего я достиг до сих пор, я поместил все в одну функцию, которая проверяет все поля, я использую имена, чтобы сделать ссылку на поля внутри функции. (Извините, если я не отступил должным образом)
var g=document.forms["myform"]["postcode"].value;
if (g==null || g=="")
{
alert("Please enter your Post CODE");
return false;
}
var regPostcode = /^([a-zA-Z]){1}([0-9][0-9]|[0-9]|[a-zA-Z][0-9]
[a-zA-Z]|[a-zA-Z][0-9][0-9]|[a-zA-Z][0-9]){1}([ ])([0-9][a-zA-z][a-zA-z]){1}$/;
if(regPostcode.test(postcode) == false)
{
alert("That Post Code is incorrect");
return false;
}
Вот HTML-код для конкретного поля внутри формы, которую я использую
<div class=”field_container”><label>Post Code</label><input type=”text” name="postcode" id="postcode" /></div>
2 ответа
Кроме того, вы должны добавить простое улучшение доступности, например, так:
<div class="field_container">
<label for="postcode">Post Code</label> <!-- the "for" attribute should match the "id" attribute of the input it corresponds to -->
<input type="text" name="postcode" id="postcode" />
</div>
Предположим, что ваше регулярное выражение подходит для страны, которую вы нацеливаете, я бы попробовал что-то вроде этого:
var g = document.forms["myform"]["postcode"].value;
var regPostcode = /^([a-zA-Z]){1}([0-9][0-9]|[0-9]|[a-zA-Z][0-9]
[a-zA-Z]|[a-zA-Z][0-9][0-9]|[a-zA-Z][0-9]){1}([ ])([0-9][a-zA-z][a-zA-z]){1}$/;
if (!g)
{
alert("Please enter your Post CODE");
return false;
}
if (!g.match(regPostcode))
{
alert("That Post Code is incorrect");
return false;
}
Как сказал @Shiplu, не существует единого регулярного выражения, которое будет работать для почтовых кодов для каждой страны. Вы должны убедиться, что хотите заблокировать отправку форм людьми, живущими в некоторых других странах.
Надеюсь это поможет.