2008-04-22

dijit.form.Form submit 抑止はどうするの?

Dojo Toolkit 1.1.0 でのお話。

dojo の connect 機構を使ってやってみた。

    function onSubmitTestForm() {
return false;
}

function init() {
var formTest = dijit.byId('TestForm');
dojo.connect(formTest, 'onSubmit', 'onSubmitTestForm');
}

dojo.addOnLoad(init);


これでは、フォームは送信されてしまう。



オフィシャルの trac に Broken Backwards compatibility for dijit.form.Form と、いうチケットを見つけた。まさにこのことについてのやり取り。 接続からのリターン値は、無視される。オーバーライドする必要がある。とのこと。オーバーライド?


他にも、いくつか同様のチケット(#6280 とか)上がってて、斜め読みした感じでは、



<form dojoType="dijit.form.Form" onSubmit="return false;" id="TestForm" method="post" action="...">


こうすると、リクエストは送信されず、onSubmitTestForm が実行されました。onSubmit="dojo.stopEvent(arguments[0]);" でも、同じ。何が違うんだろう?



とりあえず onSubmitTestForm から dojo.io.bind してみます。

0 件のコメント: