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 件のコメント:
コメントを投稿