2013-04-05 61 views
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"> 

任何帮助真的会很感激!

UPDATE:我有我的功能更新一些帮助后,要完成的功能,因为它似乎并没有工作,我需要它的一些进一步的帮助

回答

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设置为其他国家/地区的默认值。

然后,您会致电txtcountry字段的blur事件中的postcode()函数。

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

+0

最大长度正是我一直在寻找除了一些原因,当我完成它似乎没有工作 – bigsenator 2013-04-05 09:16:37

+1

见我的编辑功能。当然,您确实需要实际调用该函数。这是一个工作示例:http://jsfiddle.net/nnnnnn/hk6bE/ – nnnnnn 2013-04-05 09:17:59

+0

嗯仍然似乎没有为我工作:/ – bigsenator 2013-04-05 09:30:07

0

我会用

var country = document.getElementById('txtcountry'); 
if (country.value == "Australia" || category == "australia") 
{ 
    country.setAttribute("maxlength","4"); 
    country.value = country.value.substr(0,4); 
}