1

Javaスクリプトを使用してphpフォームデータを検証していますが、フォームは検証せずにデータを送信します。このフォーム検証の作成に間違いがありますか? HTM コードは次のとおりです。

<form name="form1" action="sendmail.php" onSubmit="return validateform1();" method="post">
    <table>
        <tbody>
            <tr><td><input id="name" class="w200" name="name" type="text" value="Your Name" onFocus="if(this.value=='Your Name')this.value=''" onBlur="if(this.value=='')this.value='Your Name'"></td></tr>
            <tr><td><input id="cname" class="w200" name="cname" type="text" value="Company Name" onFocus="if(this.value=='Company Name')this.value=''" onBlur="if(this.value=='')this.value='Company Name'"></td></tr>
            <tr><td><input class="w200" name="email" type="text" value="Your Email ID" onFocus="if(this.value=='Your Email ID')this,value=''" onBlur="if(this.value=='')this.value='Your Email ID'"></td></tr>
            <tr><td><input class="w200" name="mno" type="text" value="Mobile No." onFocus="if(this.value=='Mobile No.')this.value=''" onBlur="if(this.value=='')this.value='Mobile No.'"></td></tr>
            <tr><td><input class="w200" name="country" type="text" value="Country" onFocus="if(this.value=='Country')this.value=''" onBlur="if(this.value=='')this.value='Country'"></td></tr>
            <tr><td><textarea class="w200n h60" name="message" cols="23" rows="4" onFocus="if(this.value=='Requirements')this.value=''" onBlur="if(this.value=='')this.value='Requirements'">Requirements</textarea></td></tr>
            <tr><td><input type="submit" value="Submit"><input name="reset" type="reset" value="Reset"></td></tr>
        </tbody>
    </table>
</form>

このフォーム検証の Java スクリプトは次のとおりです。

<script language="javascript">
    function validateform1() {
        if($document.form1.name.value=="") {
            alert("Enter Name");
            return false;
        }

        if($document.form1.cname.value=="") {
            alert("Please enter company name");
            return false;
        }

        if($document.form1.email.value=="") {
            alert("Please enter your email");
            return false;
        }

        if($document.form1.mno.value=="") {
            alert("Please enter your mobile no.");
            return false;
        }

        if($document.form1.country.value=="") {
            alert("Please enter country");
            return false;
        }
    }
</script>
4

3 に答える 3

1

すべてのフィールドに対してこれを行うだけです。入力タイプに として割り当てられた値が既にあるため、Your NameそれがYour name またはnull

if(document.form1.name.value=="Your Name" || document.form1.name.value=="")

于 2013-10-13T08:53:26.557 に答える
1

どの条件もトリガーされずに が返されない場合は、最後の閉じ波括弧 ( ) の前で終了するfalse必要があります。return true;}

明確にするために:私は次のように関数を書きます:

function validateform1() {
  if(document.form1.name.value=="") {
    alert("Enter Name");
    return false;
  }
  else if(document.form1.cname.value=="") {
    alert("Please enter company name");
    return false;
  }
  else if(document.form1.email.value=="") {
    alert("Please enter your email");
    return false;
  }
  else if(document.form1.mno.value=="") {
    alert("Please enter your mobile no.");
    return false;
  }
  else if(document.form1.country.value=="") {
    alert("Please enter country");
    return false;
  }
  return true;
}
于 2013-10-13T08:54:26.630 に答える