0

メールを送信するお問い合わせフォームを作成していますが、実際にデータを入力していることを確認するのに問題があります(より詳細な検証を行う必要があることはわかっていますが、最初に機能することを確認したいと思います)。ユーザーが[送信]をクリックすると、javascriptはフィールドが入力されていることを確認します。その場合、サーバー側で再度検証してからメッセージを送信します(これは正常に機能しています)。そうでない場合は、アラートが表示され、メッセージは送信されません。
ただし、このJavaScriptでは、フィールドが空の場合、エラーメッセージが表示され、とにかく電子メールが送信されます。私はここで何が間違っているのですか?

<script type="text/javascript">
                function validate() {
                    var x=document.forms['mailcontact']['name'].value; 
                    var y=document.forms['mailcontact']['email'].value; 
                    var z=document.forms['mailcontact']['subject'].value; 
                    if (x == '' || x == null || x == ' name') {
                        alert("You need to enter a name");
                    }
                    else if (y == '' || y == null || y == ' email') {
                        alert("You need to enter your email");
                    }
                    else if (z == '' || z == null || z == ' subject') {
                        alert("You need to enter a subject line");
                    }   
                    else {
                        document.forms['maincontact'].submit();
                    }
                }
            </script>

            <form method="POST" action="mail.php" id="mailcontact">
                <input value=" name" size="25" id="contactname" type="text" name="name" onblur="if(this.value=='') this.value=' name';" onfocus="if(this.value==' name') this.value='';" /> 
                <input value=" email" size="25" id="contactemail" type="text" name="email" onblur="if(this.value=='') this.value=' email';" onfocus="if(this.value==' email') this.value='';" />
                <input value=" subject" size="25" id="contactsubject" type="text" name="subject" onblur="if(this.value=='') this.value=' subject';" onfocus="if(this.value==' subject') this.value='';" />
                <textarea name="message"> message</textarea>
                <input onclick="validate()" value="validate_then_send" type="image" src="../images/sendbutton.png" style=" width: 200px; border: none; position: relative; left: 360px;" />
            </form>​
4

1 に答える 1

0
<script type="text/javascript">
                function validate() {
                    var x=document.forms['mailcontact']['name'].value; 
                    var y=document.forms['mailcontact']['email'].value; 
                    var z=document.forms['mailcontact']['subject'].value; 
                    if (x == '' || x == null || x == ' name') {
                        alert("You need to enter a name");
                    }
                    else if (y == '' || y == null || y == ' email') {
                        alert("You need to enter your email");
                    }
                    else if (z == '' || z == null || z == ' subject') {
                        alert("You need to enter a subject line");
                    }   
                    else {
                        document.forms['maincontact'].submit();
                    }
                }
            </script>

            <form method="POST" action="mail.php" id="mailcontact">
                <input value=" name" size="25" id="contactname" type="text" name="name" onblur="if(this.value=='') this.value=' name';" onfocus="if(this.value==' name') this.value='';" /> 
                <input value=" email" size="25" id="contactemail" type="text" name="email" onblur="if(this.value=='') this.value=' email';" onfocus="if(this.value==' email') this.value='';" />
                <input value=" subject" size="25" id="contactsubject" type="text" name="subject" onblur="if(this.value=='') this.value=' subject';" onfocus="if(this.value==' subject') this.value='';" />
                <textarea name="message"> message</textarea>
                <input onclick="validate();return false;" value="validate_then_send" type="image" src="../images/sendbutton.png" style=" width: 200px; border: none; position: relative; left: 360px;" />
            </form>​
于 2012-10-10T20:36:26.663 に答える