jQuery 検証プラグインの validate メソッドを使用してフォーム検証をセットアップし、input 要素の値を変更する送信ハンドラーを用意しました (YUI エディターを使用し、iframe のコンテンツを textarea 要素にコピーするには saveHTML() 呼び出しが必要です)。フォームを送信するときに、送信ハンドラーを実行した後にバリデーターがフォームを検証するようにします。ただし、検証呼び出しの後に登録されている場合、送信ハンドラーは実行されません。
例えば、
<form id="form1" action="/test">
<input type="text" name="txt1" id="txt1" />
<input type="submit" value="submit" />
$(document).ready(function() {
$("#form1").submit(function() {
$("#txt1").val("123456");
});
$("#form1").validate({
rules: {
txt1: {
maxlength: 5
}
}
});
});
送信ハンドラーの後にフォームが検証されるため、送信がキャンセルされます。
$(document).ready(function() {
$("#form1").validate({
rules: {
txt1: {
maxlength: 5
}
}
});
$("#form1").submit(function() {
$("#txt1").val("123456");
});
});
ただし、順序を変更すると、送信ハンドラーの前にフォームが検証されます。