我是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">
真的很感激任何帮助!
更新:我已经在一些帮助之后将我的功能更新为完成的功能,因为它似乎不起作用,我需要一些进一步的帮助
答案 0 :(得分: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()
字段的blur
事件中调用txtcountry
函数。
编辑:请注意,您显示的函数在category
测试的第二部分中有一个未定义的变量if
- 应为country
。正如我已经提到的,你需要从某个地方调用该函数。
答案 1 :(得分:0)
我会用
var country = document.getElementById('txtcountry');
if (country.value == "Australia" || category == "australia")
{
country.setAttribute("maxlength","4");
country.value = country.value.substr(0,4);
}