1

我在 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,并且请您指出正确的方向来阅读此内容并了解为什么会发生这种情况。我还应该注意,我对内容窗格使用了相同类型的代码,并且代码在那里运行良好。

谢谢,诺鲁

4

1 回答 1

1

道场 1.8 dojo.connect中是dojo/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

于 2012-10-02T13:53:01.057 回答