2012-05-11 10 views
2

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

残念ながら、残念ながら私はドメイン名を配列に入れるのに十分な構文を知らないので、電子メール(この場合はYahooのみでホストされている場合)をチェックすることができます。

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> 

感謝。

+0

は、フォーム入力データ抽出からコードをチェックするドメインを分離、それはあなたのコードをより簡単にし、それが非jQueryの特定 – Alnitak

答えて

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"); 
     } 
    } 
}); 

構文に準拠して、必要に応じて電子メールサービスをアレイに追加します。

+0

のindexOfは、IEの右にサポートしていません作ってあげます? – 151291

1

Eliot、解決に感謝します。コピー貼り付けされたコードはうまくいきませんでした。なぜなら、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"); 
     } 
    } 
}); 
関連する問題