Я создаю регистрационную форму, и мне нужен способ запретить пользователям отправлять менее 5 номеров для почтового индекса. Когда я полностью комментирую свою попытку для else if, работает другая функция (гарантирующая, что пользователи не отправят никаких писем). Я использую return false в конце, чтобы форма не отправлялась, и я мог проверить неверный ввод. Извините за отсутствие jsfiddle - по какой-то причине он не позволял мне отправлять формы (я нуб, так что это может быть причиной). Вот фрагмент моего кода:
HTML:
<form name="reg" onSubmit="return formValidation();">
<p>Zip Code: <input type="text" id="zip" maxlength="5" name="zip"></p>
<input type="submit" id="submitbutton" name="submitbutton" value="Submit" />
<div id="msg"></div>
</form>
JS:
function formValidation()
{
var zip = document.reg.zip;
allnumeric(zip);
function allnumeric(zip)
{
var numbers = /^[0-9]+$/;
if(zip.value.match(numbers))
{
document.getElementById("msg").innerHTML=("OK ✓");
msg.style.color="green";
}
else if (zip.numbers < 5) /*DOES NOT COMPUTE*/
{
msg.innerHTML=("Has to be 5 numbers.");
msg.style.color="red";
}
else
{
msg.innerHTML=("Numbers only please.");
msg.style.color="red";
}
};
return false;
};