jQuery検証プラグイン(http://docs.jquery.com/Plugins/Validation/validate)を使用する場合:
次の動作が必要です。ユーザーが送信を押したらすぐに検証します(実際に送信する代わりに、ajax postリクエストを使用しています)。
ただし、次のようになります。送信を押すと検証が実行され、該当する場合は検証エラーが発生します。次に、間違いを修正して送信を押すと、フォームが再検証されますが、検証エラーがない場合は、 ajax投稿は作成されず、フォームのみが検証されます。
最初に検証エラーがない場合、投稿は必要に応じて即座に行われます。
私は次のものを持っています:
<script type="text/javascript">
$(document).ready(function(){
$("#form").validate({
onkeyup: false,
onclick: false,
onsubmit: true,
rules: {
telNR: {
required: true,
digits: true,
minlength: 10
}
},
messages: {
telNR: {
required: "Fill in a valid telephone NR",
minlength: "A telephoneNR is 10 characters long",
digits: "Use only numerics"
}
},
submitHandler: function(form) {
var jqxhr = $.post("sendMail.php", { telNR: $("#telNR").val() },
function(data) {
alert("Done");
})
.error(function(jqXHR){
alert("Error");
});
}
});
})
</script>