ajax送信直前に送ろうとしているformの値自体を操作しようと
したのだけど、うまく送れなかった。
おそらく、beforeが完了してから送信の処理が開始されるので
はなく、beforeと同時並行的に送信するデータ自体は取得して
いるからだろう。
echo $js->submit("登録する",array(
'id'=>'register',
'url'=>'add',
'update'=>'#complete'
'before'=>'
var fm = document.getElementById("add");
$("#add").append("<input type=\"hidden\" name=\"data[Theme][explanation]\"/>");
fm.elements[\'data[Theme][explanation]\'].value=$("#explanation").val();
'
));
では、どうすればよいか。
beforeで設定するのではなく、別で$js->submitより上に、
onclickのイベント設定をしてしまえばよい。
こうすれば、フォームの値の操作が完了してから、
送信の処理が開始されるようになる。
$js->get("#register")->event('click','
var fm = document.getElementById("add");
$("#add").append("<input type=\"hidden\" name=\"data[Theme][explanation]\"/>");
fm.elements[\'data[Theme][explanation]\'].value=$("#explanation").val();
');
echo $js->submit("登録する",array(
'id'=>'register',
'url'=>'add',
'update'=>'#complete'
));
※CakePHPのバージョンはcakephp-cakephp-1.3.15-9-gacd25c3.zip
0 件のコメント:
コメントを投稿