1

我对 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”&gt;<label>Post Code</label><input type=”text” name="postcode" id="postcode" /></div>
4

2 回答 2

0

此外,您应该添加一个简单的可访问性增强,如下所示:

<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>
于 2014-07-29T20:27:41.683 回答
0

假设您的正则表达式对于您所瞄准的国家/地区是正确的,我会尝试这样的事情:

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 所说,没有统一的正则表达式适用于每个国家的邮政编码。您应该确保要阻止居住在其他国家/地区的人提交表单。

希望这可以帮助。

于 2012-03-03T21:56:58.340 回答