2013-04-05 3 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 в соответствии с вашими значениями по умолчанию для других стран.

Вы бы затем позвонили в свою postcode() функцию из blur события вашего поля txtcountry.

EDIT: Обратите внимание, что функция, которую вы указали, имеет неопределенную переменную category во второй части теста if - должна быть country. И, как я уже упоминал, вам нужно вызвать функцию откуда-то.

+0

MAXLENGTH было именно то, что я искал по какой-то причине, за исключением того, после того как я закончил функцию она не похоже на работу – bigsenator

+1

Смотрите мой выбор. И, конечно, вам действительно нужно выполнить функцию _call_. Вот рабочий пример: http://jsfiddle.net/nnnnnn/hk6bE/ – nnnnnn

+0

Хм, похоже, не работает для меня:/ – bigsenator

0

Я бы использовать

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