2016-11-01 14 views
0

電子メールフィールドに電子メールの特定のドメインが含まれていることを確認しようとしています。私は、入力の値をチェックし、文字列内でドメインの値を検索しています。その部分が動作し、私はデフォルトアクションを防止し、フォームを送信しませんが、値が見つかったら、私は提出したいが、依然としてそれが送信できないようにします。それはちょうど私のコードでは、このまたは愚かな何かのような課題を解決するための長い一日の後に...アドバイスしてくださいことがあります提出後のval()のための提出を停止しても提出を確認しない

<script> 
    $("#Email") 
    .keyup(function() { 
     var value = $(this).val(); 
     var n = value.search("@atlanticbay.com"); 
     if (n <= 0) { 
     $(".btn").click(function(event) { 
      event.preventDefault(); 
      console.log("prevented"); 
     }); 

     } else { 
     $(".btn").submit(function() { 
      console.log("we are good"); 

     }) 

     console.log(n); 
     } 
    }) 
    .keyup(); 

</script> 
+1

1)これは、あなたが提出フォームでそれを行う必要があるように見えます。 2)あなたの '.click'と' .submit'はクリックとサブミットを引き起こさず、バインディングハンドラです。 3)Javascriptの検証はバイパスすることができるので、このチェックをサーバー側で行う必要があります。 –

答えて

0
  1. 検索。
  2. クライアント側での検証の有無にかかわらず、ブラウザが行うことを妨げるため、デフォルトを優先しないようにしてください。
  3. 検索の代わりにパターンを使用すると、 "@ atlanticbay.com @ yahoo .com "
  4. あなたはすでにサブミットしているので、デフォルトのブラウザの動作を妨げたので、ajaxを使用して値をサーバーにプッシュできます。終わり
  5. は、あなたのコードは、あなたがkeyUpイベントでこれを行うことはできません

$("#email").on('submit', function(e){ 
 
\t e.preventDefault(); 
 
\t var input = $(this).val(); 
 
\t var match = input.match(/^\[email protected]$/i); 
 
\t if(typeof match != 'null'){ 
 
      console.log("we are good"); 
 
\t \t \t // add submit codes here..probably ajax 
 
\t \t } 
 
    console.log("prevented"); 
 
});

関連する問題