0

簡単な質問があります。メールアドレスの検証を試みました。電子メール アドレスが学校の電子メール (つまり、edu で終わる) であるかどうかを検証するなどの検証を行う必要がありますが、通常の電子メールの検証から始めることにしました。

JavaScript部分

function ok_Email(email){
    var filter = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
    if(filter.test(email)){
        return true;
        window.alert('This is an email')
    }
else{
    return false;
    window.alert('This is not an email')
}
}

HTML部分

<form name="myform"
onSubmit="return ok_Email(this);">
<p>
Please enter your email address: <br>
<input type="text" size=40 name="user_email">
<p>
<input type = submit value="Send">
</form>

このコードの問題は、送信ボタンをクリックしてもページが変更されなかったことです。コードでわかるように、アラートが発生するはずですが、発生しません。お尻の部分に問題があると思いますが、よくわかりません.......

4

2 に答える 2

3

リターンはアラートの前であるため、アラートは表示されません。コードはその時点で終了し、その後は何も実行されません。

2 番目の問題は、オブジェクトに対して正規表現をテストしていることです。

"return ok_Email(this);">
                 ^^^^
                  this is the form

 function ok_Email(email){
                   ^^^^^
                   You think it is a string

user_email の値を参照する必要があります。

function ok_Email(form){
    var email = form.user_email.value;
于 2013-11-05T01:39:27.300 に答える
0

コードを次のように変更する必要があります。

function ok_Email(form.user_email.value){
    var filter = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
    if(filter.test(foam.user_email.value)){
        window.alert('This is an email');
        return true;
    }
    else{
      window.alert('This is not an email');
      return false;
    }
}

アラート ボックスを表示し、電子メール フィールドの値を渡す

于 2013-11-05T01:51:47.860 に答える