0

我是 JavaScript 新手,我一直在做一些工作,用 HTML 和 JavaScript 创建表单。在这项工作中,我一直试图根据输入到前一个字段中的文本来限制字段的字符串。

我一直在尝试的是,如果在“国家”文本框中输入“澳大利亚”国家,而不是“邮政编码”文本框仅限于 4 个数字(澳大利亚邮政编码标准)

到目前为止,我已经完成了这么多的功能:

document.getElementById('txtcountry').onblur = function postcode()
{
var country = document.getElementById('txtcountry').value;
if (country == "Australia" || category == "australia")
{
    document.getElementById('txtpostcode').maxLength = 4;
    }
    else
{
    document.getElementById('txtpostcode').maxLength = 9;
}
}

这是我必须使用该函数的初始 HTML 片段:

<b>Postcode:</b> <input type="text" id="txtpostcode" name="postcode">
<br>
<b>Country:</b> <input type="text" id="txtcountry" name="country">

我正在使用以下方法调用该函数:

<form name="rego" action="submit.htm" onsubmit="return !!(validateText() & validateCheckBoxes(this) & validateRadioButton() & validateEmail() & populateInstitution() & postcode());" method="POST">

任何帮助将不胜感激!

更新:在一些帮助后,我已经将我的功能更新为完成的功能,因为它似乎不起作用,我需要一些进一步的帮助

4

2 回答 2

0

您是否尝试设置maxLength属性:

var pc = document.getElementById('txtpostcode');
pc.maxLength = 4;
pc.value = pc.value.substr(0,4); // remove any extra characters already entered

...然后添加一个else条件以将其设置maxLength为其他国家/地区的默认值。

然后,您将从您的领域的事件中调用您的postcode()函数。blurtxtcountry

编辑:请注意,您显示的函数category在测试的第二部分中有一个未定义的变量if- 应该是country. 正如我已经提到的,您确实需要从某个地方调用该函数。

于 2013-04-05T09:05:56.363 回答
0

我会用

var country = document.getElementById('txtcountry');
if (country.value == "Australia" || category == "australia")
{
  country.setAttribute("maxlength","4");
  country.value = country.value.substr(0,4);
}
于 2013-04-05T09:20:59.550 回答