Dijit Form isValid returns false while validate returns true after destroyed a descendant
Dijit Form isValid returns false while validate returns true after destroying a descendant
我在使用 dijit 1.11.
完成的表单时遇到了一个非常奇怪的问题,在这种情况下,表单中有几个 dijit/layout/ContentPane
,而表单本身是 TabContainer
.在提交之前,根据一些规则,通过在其中调用 destroyRecursive
来删除一些窗格。问题是,表单仍然没有提交。
进一步检查,validate()
方法 return 为真但 isValid return 为假,这就是提交未触发的原因。检查isValid
方法,我发现窗体的_descedents
属性没有清除我销毁子窗格时递归销毁的小部件。其中一些小部件的状态为未完成,这使得 isValid return 为假(尽管验证 return 为真)。
这是怎么回事,我该如何解决?
我会尝试 post 一个 jsFiddle 后者更好地解释错误,但作为解决方案,您需要在销毁 ContentPane 后调用 Form connectChildren()
方法,这会重新创建 _descendants
数组,使 isValid 函数只检查现有元素
我在使用 dijit 1.11.
完成的表单时遇到了一个非常奇怪的问题,在这种情况下,表单中有几个 dijit/layout/ContentPane
,而表单本身是 TabContainer
.在提交之前,根据一些规则,通过在其中调用 destroyRecursive
来删除一些窗格。问题是,表单仍然没有提交。
进一步检查,validate()
方法 return 为真但 isValid return 为假,这就是提交未触发的原因。检查isValid
方法,我发现窗体的_descedents
属性没有清除我销毁子窗格时递归销毁的小部件。其中一些小部件的状态为未完成,这使得 isValid return 为假(尽管验证 return 为真)。
这是怎么回事,我该如何解决?
我会尝试 post 一个 jsFiddle 后者更好地解释错误,但作为解决方案,您需要在销毁 ContentPane 后调用 Form connectChildren()
方法,这会重新创建 _descendants
数组,使 isValid 函数只检查现有元素