Как проверить почтовый индекс в этой форме, используя 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, не существует единого регулярного выражения, которое будет работать для почтовых кодов для каждой страны. Вы должны убедиться, что хотите заблокировать отправку форм людьми, живущими в некоторых других странах.

Надеюсь это поможет.

Другие вопросы по тегам