フォームの ajax 送信を処理するために、JQuery フォーム プラグイン ( http://malsup.com/jquery/form/ ) を使用しています。また、クライアント側の検証用にJQuery.Validate ( http://docs.jquery.com/Plugins/Validation ) をプラグインしています。
私が見ているのは、期待どおりに検証が失敗することですが、フォームの送信は停止しません。従来のフォーム (つまり、非 ajax) を使用していたとき、検証の失敗により、フォームの送信がまったく妨げられました....これは私の望ましい動作です。
ajax送信が発生した後も検証メッセージが表示されるため、検証が正しく接続されていることがわかります。
それで、私が見逃しているのは、私の望ましい行動を妨げているのですか? 以下のサンプルコード....
<form id="searchForm" method="post" action="/User/GetDetails">
<input id="username" name="username" type="text" value="user.name" />
<input id="submit" name="submit" type="submit" value="Search" />
</form>
<div id="detailsView">
</div>
<script type="text/javascript">
var options = {
target: '#detailsView'
};
$('#searchForm').ajaxForm(options);
$('#searchForm').validate({
rules: {
username: {required:true}},
messages: {
username: {required:"Username is a required field."}}
});
</script>