[jquery]Validation,Impromptu,Formのプラグイン
2008/10/08
ajax
javascript
jquery
シナリオ
「フォームの内容を送信します。フォームの内容はバリデーションします。バリデーションしたあとに確認ダイアログをだして、OKだった場合、AJAXして、結果ダイアログをだします。」
使うのはjQueryプラグイン3種類。
Validationはsubmitすると勝手にvalidateしてくれます。
Impromptuはプロンプト、ダイアログをだすに使えます。
Formプラグインは、フォームの中身をajaxして通信してくれるみたい。
僕が注意した要点だけかいつまんで。
まずフォームのsubmitの処理を変更。
$('#f').submit(function(){ return true; });
ValidationのruleでsubmitHandlerをコールバック関数を定義。
フォームの内容がOKの場合呼ばれるようにします。
バリデーションのルールを定義。
例)
var rules = {
submitHandler: function() { prompt(); },
rules:{
fullname_kanji:{ my_check:'お名前(漢字)' }
// そのルールを記述
}
};
var rules = {
submitHandler: function() { prompt(); },
rules:{
fullname_kanji:{ my_check:'お名前(漢字)' }
// そのルールを記述
}
};
バリデーションのルールの渡し方は、
$("#f").validate(rules);
次にsubmitHandlerで呼ばれる関数を定義します。
この中でダイアログをだします。
やっていることは確認ダイアログだしてOKなら通信してsuccessならまたダイアログをだす。
※ここのコードはおおざっぱ。
function prompt(){
$.prompt(msg, { buttons: { Ok: true, Cancel: false }, focus: 1,
callback:function(v, m){
if(v){ // OKの場合
var options = {
url: '通信先.php',
type: 'post',
success: function() {
//処理が成功のときのダイアログ
$.prompt('送信しました。',{
buttons: { 'トップページに移動': 'トップページに移動', Bye: 'Good Bye' }
});
}
};// options end
$('#f').ajaxSubmit( options );
}// if end
}
});
}
$.prompt(msg, { buttons: { Ok: true, Cancel: false }, focus: 1,
callback:function(v, m){
if(v){ // OKの場合
var options = {
url: '通信先.php',
type: 'post',
success: function() {
//処理が成功のときのダイアログ
$.prompt('送信しました。',{
buttons: { 'トップページに移動': 'トップページに移動', Bye: 'Good Bye' }
});
}
};// options end
$('#f').ajaxSubmit( options );
}// if end
}
});
}
jQueryのプラグインのコードをいろいろみて、寄せ集め的に作成したので、参考にならないけど....
: