0

以下は JavaScript を使用したフォーム検証ですが、機能していません。

function validate()
{
    var n=document.frm.name.value();
    if(!n.match(/^[a-zA-Z]+$/))
    {
    alert("Enter valid Name");
    document.frm.name.value="";
    document.frm.name.focus();
    return false;
    }

    var b=document.frm.mob.value();
    if(!b.match(/^[0-9]+$/) || b.length<10 || b.length>10)
    {
    alert("Enter valid Name");
    document.frm.mob.value="";
    document.frm.mob.focus();
    return false;   
    }

    var y=document.frm.nn.value();
    if(y==null || y=="")
    {
    alert("Enter valid Name");
    document.frm.nn.value="";
    document.frm.nn.focus();
    return false;   
    }

    var z=document.frm.email.value();
    if(!z.match(/^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/))
    {
    alert("Enter valid Name");
    document.frm.email.value="";
    document.frm.email.focus();
    return false;   
    }
}


<body>
<form name="frm" action="#" method="post" onsubmit="return validate()">
Name :<input type="text" name="name"/>
Mobile No:<input type="text" name="mob" />
Not Null :<input type="text" name="nn"/>
Email Id:<input type="text" name="email"/>
<input type="submit" name="submit" value="submit"/>
</form>
</body>
4

3 に答える 3

0

return false を関数の外に置いてください。

         var b=document.frm.mob.value;
        if(!b.match(/^[0-9]+$/) || b.length<10 || b.length>10)
        {
        alert("Enter valid Name");
        document.frm.mob.value="";
        document.frm.mob.focus();     
        }

        var y=document.frm.nn.value;
        if(y==null || y=="")
        {
        alert("Enter valid Name");
    document.frm.nn.value="";
    document.frm.nn.focus();

    }

    var z=document.frm.email.value();
    if(!z.match(/^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/))
    {
    alert("Enter valid Name");
    document.frm.email.value="";
    document.frm.email.focus();

    }
    return false;  
}
于 2012-12-11T06:33:20.973 に答える
0

イベントonsubmitのフォームタグで関数validate()を呼び出す代わりに、送信ボタンで使用することをお勧めします

<input type="submit" name="submit" value="submit" onClick="return validate()" />

それはより良く機能し、必要に応じて出力します。

于 2012-12-11T06:48:31.003 に答える
0

まず、フィールドに予約語 (「名前」など) を付けないでください。

次に、値はメソッドではなくプロパティであるため、

var b=document.frm.mob.value;

(ブラケットなし)

于 2012-12-11T06:20:51.963 に答える