- PR -

Dojoのボタン

1
投稿者投稿内容
未記入
大ベテラン
会議室デビュー日: 2008/07/11
投稿数: 182
投稿日時: 2008-09-24 17:08
こんにちは。

Dojoを扱っている人は少ないと思いますが・・。

現在、元画面からdijit.Dialogを表示し、このダイアログにあるテキストなどの入力項目をpostすると言う単純な機能を作りたいのですが、できていません。


■元画面
<td valign="top">
<form name="edit" enctype="multipart/form-data" method="post">
<div id="test_dialog"></div>
</form>
</td>

■ダイアログ(別ファイルよりAjaxにて上記'test_dialog'にinnerHTMLでセットしています)

<div dojoType="dijit.Dialog" class="soria" id="test_dialog" title="Test">
<table>
<tr>
<td >テスト:<input type="text" name="aaaa" size="40" value=""></td>
</tr>
<tr>
<td>
<button dojoType='dijit.form.Button' id="btn_OK" label='O K'></button>
</td>
</tr>
</table>
</div>

これにより、表示は出来ています。

困っているのが、onClick()時の動作です。

onClick="test()"とやれば、普通のJavascriptで、functionを見つけてscriptが走り出すと思うのですが、undefineになってしまいます。

Dojoの参考程度に書かれていた所で、
<script type="text/javascript">
dojo.addOnLoad(init);

function init() {
var button = dojo.byId("button");

dojo.connect(button, "onclick", function() {
var name = dojo.byId("name");
alert("こんにちは、" + name.value + "さん!");
});
}
</script>
</head>
<body>
名前を入力:<input type="text" id="name">
<input type="button" id="button" value="クリック!">

このようにdojo.connect()を使ってクリックイベントを捕まえようとしても
捕まえられません。dijit.byId()を使っても同じでした。
(そもそもBody-onload時に走る指定なのでinit()に入らないですが、init()を外しても同じでした。ボタンクリックイベントを捕まえられません)

唯一、このように書いた場合scriptが取得出来ますが、不恰好で何とかscriptをfunctionでまとめたいのですが・・。
また、この場合<form>の"edit"(元画面でくくっている為?)を認識せず、値を取れません・・。

<button dojoType='dijit.form.Button' id="test" label='test'>
<script type="dojo/method" event="onClick">
alert(document.test.aaa.value);
</script>
</button>

お分かりになる方いましたら、よろしくお願いします。
tassie
会議室デビュー日: 2008/11/29
投稿数: 1
投稿日時: 2008-11-29 22:05
実際にどのようなコード(dojo.connectの部分)を書かれたのかを記載されてはいかがでしょう。



1

スキルアップ/キャリアアップ(JOB@IT)