确保用户无法在JavaScript表单中提交少于5个邮政编码的号码

use*_*043 1 html javascript forms zipcode function

我正在建立一个注册表单,我需要一种方法来阻止用户提交少于5个邮编的号码.当我完全注释掉我对else的尝试时,另一个函数(确保用户不会提交任何字母)起作用.我在结尾处使用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>
Run Code Online (Sandbox Code Playgroud)

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 &#x2713;");
        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;
};
Run Code Online (Sandbox Code Playgroud)

ade*_*neo 5

我建议采用HTML5

<form name="reg" onSubmit="return formValidation();">
    <p>Zip Code:
        <input type="text" id="zip" pattern="\d{5}" maxlength="5" name="zip" required="required" />
    </p>
    <input type="submit" id="submitbutton" name="submitbutton" value="Submit" />
    <div id="msg"></div>
</form>
Run Code Online (Sandbox Code Playgroud)

小提琴