フォームの 1 つに Jquery Validation Engine (https://github.com/posabsolute/jQuery-Validation-Engine) を使用しています。検証はうまく機能しますが、フィールド値が検証に準拠していない場合でも、フォームの送信を止めることはできません。
次のようなニュースレター Sigunp フォームがあります。
<form id="submit-newsletter" method="POST" action="">
<input type="text" class="searchform validate[required, custom[email]]" value="Enter Your Email" id="email" name="nw-email" onblur="defaultInput(this);" onfocu s="clearInput(this);" />
<input type="hidden" id="newsletter" name="newsletter" value="nl" />
<input type="submit" class="submit" title="Signup" value="Sign Up" name="newsletter-signup" onclick="newsletterSubscribe(event);" />
</form>
このフォームは、次のように ajax を介して送信されます。
// Newsletter Subscription Without Refresh
function newsletterSubscribe(e) {
e.preventDefault();
var dataString = 'nw-email=' + $('input[name=nw-email]').val() + '&newsletter=' + $('input[name=newsletter]').val();
$.ajax({
type: "POST",
url: "/newsletter/",
data: dataString,
success: function () {
$('#newsletter-box').html('<div id="message"></div>');
$('#message').html('<img width="18px" height="18px" src="/static/img/smtick.png" /><h5>Thank You !</h5>')
.append('<p>We have recieved your request. Please Check your mail for activation instructions. You will start recieving our newsletter once you have verified t his email address.</p>')
.hide()
.fadeIn(1200);
}
});
return false;
}
検証トリガーは次のとおりです。
$(document).ready(function() {
$('#submit-newsletter').validationEngine();
});
検証エラー メッセージが表示されるようになりましたが、送信ボタンを押すと、値が電子メール アドレスではないという事実に関係なく、フォームが送信されます。
何か案は ?