输入的数据会改变字符串长度

时间:2013-04-05 09:02:10

标签: javascript string function alter

我是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">

真的很感激任何帮助!

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

2 个答案:

答案 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);
}