0
ページに2つの入力フィールドと2つの送信フォームがあり、同じことをします...ユーザーの電子メールを購読するだけです。私は次のコードを使用しています2つの同じフォームを1ページで処理する方法は?
:http://codepen.io/anon/pen/KrqrYB
$("input[type='text']").focus(function() {
$(this).val('');
});
$(".message-validator").hide();
function validate() {
var email = $(".input-set-input").val(),
lastChar = email.substr(-1);
if (validateEmail(email)) {
$(".message-validator").hide();
} else {
$(".message-validator").show();
if (email === "") {
$(".message-validator").text("Please provide a valid email.");
} else {
if (email.indexOf('@') > 0) {
if (lastChar === "@") {
$(".message-validator").text("Please enter a part following '@'.");
} else {
$(".message-validator").text("Please provide a valid email.");
}
} else {
$(".message-validator").text("Please include an '@' in the email address.");
}
}
}
return false;
}
$("form").bind("submit", validate);
function validateEmail(email) {
var re = /^(([^<>()\[\]\\.,;:\[email protected]"]+(\.[^<>()\[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);
}
が、これはそれを行うための正しい方法ですか?または、2つの異なるフォームクラスとボタンを作成し、それらを別々に処理する必要がありますか?
あなた '検証()'関数の作品をリライトする予定がないような例だ
find()
を使用して、その形をしている要素のみを対象一般的な方法で。送信されたフォーム、つまり 'submit'イベントをトリガーしたフォームのみをターゲットにする必要があります。 –