フォームの検証にはjquery検証(http://bassistance.de/jquery-plugins/jquery-plugin-validation/ )を使用しました。以下は私のコードの一部です。
HTML:
<form id="formID" action="/processForm" method="post">
...
<input id="name" type="text" name="name" size="10" />
<input id="username" type="text" name="username" size="10" />
...
<input type="submit" value="Submit" />
jQuery:
$("#formID").validate({
onkeyup:false,
rules: {
name: {required: true},
username: {required: true, checkUsername: true}
...
},
messages: {
name: {required: "Must fill"},
username: {required: "Must fill", checkUsername: "Username unavailable"},
...
}
});
// Check if username exists
$.validator.addMethod('checkUsername', function(username) {
var postURL = "/checkUsername";
$.ajax({
...
});
return ...;
}, '');
// Submit the form by Ajax
$(document).ready(function() {
$('.formID').ajaxForm({
success: function(returnData) {
$('#content').html(returnData);
}
});
});
奇妙なことに、必須フィールドの一部を空白のままにするか、チェックを外しても、フォームを送信できます。一部の必須フィールドは、空白のままにすると送信できなくなる可能性がありますが、そうでないフィールドもあります。誰かが同じ奇妙な問題に遭遇しましたか?それとも私はここで何か間違ったことをしましたか?
ところで、何も入力せずに送信ボタンをクリックすると、すべての必須フィールドにエラーメッセージが正しく表示されます。ただし、フォームの送信を妨げないものもあります。助けてください。
編集:下部にあるAjaxフォーム送信機能が機能していないようです。どうすれば修正できますか?