dojo.connect不再使用表单?

时间:2012-10-02 11:55:12

标签: dojo dijit.form

我在Dojo 1.8之前使用过这样的东西,但现在我收到了“找不到节点”的错误:

<form dojoType="dijit.form.Form">
  Search :  
  <input type="text" dojoType="dijit.form.TextBox" name="searcht" id="searcht">
  <script type="dojo/connect" event="onSubmit" args="evt">
    my_function();
    dojo.stopEvent(evt);
  </script>
</form>

我注意到如果删除搜索文本框,代码就会正常工作。 如何重写上述内容以使用1.8,并且请非常友好地指出我正确的方向来阅读这个并理解为什么会发生这种情况。 我还应该注意,我在内容窗格中使用相同类型的代码,代码在那里工作正常。

谢谢, Noru

1 个答案:

答案 0 :(得分:1)

道场1.8 dojo.connectdojo/on。首先,您必须加载要使用的模块并解析文件以转换 dijit 元素。

<script>
require([
    "dojo/parser",
    "dijit/form/Form",
    "dijit/form/TextBox",
    "dijit/form/Button"
], function(parser) {
    parser.parse();
});
</script>

其次,在 html 标签内声明 dijit 属性和功能:

<div data-dojo-type="dijit/form/Form" id="search_form">
    <script type="dojo/on" data-dojo-event="submit" data-dojo-args="evt">
        evt.stopPropagation();
        alert( "my_function()" );            
    </script>     
    <label for="my_textbox">Search:</label>
    <input type="text" data-dojo-type="dijit/form/TextBox" id="my_textbox"/>
    <button data-dojo-type="dijit/form/Button" id="my_button" type="submit">   
        Submit     
    </button>
</div>

我在 html 代码中使用了一个声明性示例插入 dijit 选项。还有其他方法只使用 javascript 。请查看官方文档:http://dojotoolkit.org/reference-guide/1.8/dijit/index.html