2

jQuery を使用しており、電子メール アドレスが無料の電子メール サービス ドメイン (Yahoo、gmail、hotmail など) でホストされているかどうかを確認したいと考えています。

以下のコードはそれを実行しますが、残念ながら、ドメイン名を配列に入れるのに十分な構文を知りません。この場合、電子メールが Yahoo のみによってホストされているかどうかを (追加の if ステートメントなしで) チェックできます。

のようなものはありif ($(this).val().indexOf("yahoo.com && gmail.com && hotmail.com && ... ") != -1)ますか?

スクリプトは次のとおりです。

<script type="text/javascript">
$(document).ready(function(){
    $('#bemail').click(
        function(e){
            e.preventDefault;
            if ($(this).val().indexOf("Business email is required") != -1) {
            $('#bemail').val("");
            }
    });

    $('#bemail').blur(function() {
        if ($(this).val().indexOf("yahoo.com") != -1)
        {
            $(this).val("Business email is required");
        }

    });

});
</script>

ありがとう。

4

2 に答える 2

2

メールサービスの配列を作成し、値をチェックして、リストしたメールのいずれかと等しいかどうかを確認できます。これを行うには、for ループを使用して、配列内の各値を入力の値と比較します。次のようにします。

var freeServices = ["yahoo.com", "gmail.com"];

$('#bemail').blur(function() {
    for(var i = 0; len = freeServices.length; i<len; i++) {
        if ($(this).val().indexOf(freeServices[i]) != -1) {
            $(this).val("Business email is required");
        }
    }
});

構文を維持しながら、必要に応じて電子メール サービスを配列に追加します。

于 2012-05-11T18:26:56.463 に答える
1

エリオット、解決策をありがとう。コピペしたコードがうまく動かなかったので(試してみたもののlenが宣言されていなかったためか、理由はわかりません)、Javascriptをよく知らない私のような人のために少し修正しました...私のページで動作するコードは次のとおりです。

$('#bemail').blur(function() {
var freeServices = ["yahoo.com","gmail.com","hotmail.com"];

    for(var i = 0; i < freeServices.length; i++)
    {
        if ($(this).val().indexOf(freeServices[i]) != -1)
        {
            $(this).val("Business email is required");
        }
    }
});
于 2012-05-16T21:49:13.397 に答える