1
私は以下のjQueryを使用して、適切な電子メールアドレスが入力されていることを確認します。ここでマークアップは次のとおりです。フォームにチェックと有効な電子メールが機能していないか確認してください。
// reveal modal if info is filled out correctly
$('.hero--input_button').click(function() {
if (($('.hero--input_check').is(":checked")) && ($('.hero--input_text').val().length >= 8)) {
$('#cta-modal').addClass('modal--show');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="email_signup" method="GET" target="_blank" novalidate="novalidate">
<div class="klaviyo_field_group">
<input type="email" value="" name="email" id="k_id_email" placeholder="Your email" class="hero--input_text" />
<input type="checkbox" name="subscribe" value="yes" id="form--check_two" class="hero--input_check" checked />
</div>
<div class="klaviyo_form_actions">
<button type="submit" class="hero--input_button">Subscribe</button>
</div>
</form>
私は(.heroについて - input_textと)if文から最後のビットを取る場合は、コードが正常に動作します。ちょうどその後、人々はボタンを押して、メールアドレスを入力せずにモーダルを見ることができます!
私のコードで何か問題があることは知っていますが、わかりません。助けやアドバイスをいただければ幸いです。
を実装する例を示しますか? – Niladri
あなたのコードは正常に正常に動作しています。ちょうど有効な電子メール形式を確認する正規表現が必要な電子メールの長さを確認しています。 – Niladri
正規表現で電子メールアドレスを正しく検証することは、基本的に不可能です。 (ただし、長さが8文字を超えているかどうかを確認することは素晴らしい方法ではありません)。1つの '@'と少なくとも1つの '.'の存在をテストし、それを1日と呼びます。 –