dojox / form / manager“试图注册小部件”错误

时间:2013-03-14 14:00:26

标签: dojo

这是我的HTML:

**<form action="http://localhost/so/users/login" method="post" accept-charset="utf-8" class="user_login_form" id="user_login_form" widgetid="user_login_form" data-dojo-type="dojox/form/Manager">
.
.
.
</form>**

* 这是我的js代码*

<script="text/javascript">

require(
    ['dijit/registry','dojo/_base/array','dojo/parser','dojo/ready','dijit/form/TextBox','dijit/form/Button','dojox/form/Manager',

    ],
    function(registry,array,parser,ready,textbox,button



    ){
    // parse the dom
    parser.parse();

}); // close the dojo sandbox



</script>

这是控制台上的错误

DEPRECATED:不推荐使用dojox.form.Manager :: getDescendants()。请改用getChildren()。 - 将在版本中删除:2.0 kernel.js:203 dojo / parser :: parse()错误 错误 参数:undefined get stack:function(){[native code]} 消息:“尝试使用id == user_login_form注册小部件,但该ID已经注册” set stack:function(){[native code]} 类型:undefined _ proto _:SetUpError.d

2 个答案:

答案 0 :(得分:1)

请在实际创建窗口小部件的代码之前在onLoad()/上尝试以下操作:

if (dojo.byId('user_login_form') != null) {
                        dojo.forEach(dijit.findWidgets(dojo.byId('user_login_form')), function (w) {
                            w.destroyRecursive();
                        });
                    }
                    dojo.destroy(dojo.byId('user_login_form'));
                    if (dijit.byId('user_login_form')) {


dijit.byId('user_login_form').destroy();
                }

答案 1 :(得分:0)

由于您已经指定了注册表将使用的id,因此widgetid似乎是多余的,可能实际上会导致错误。