当我在客户端为我的一个应用程序进行验证时。我心里想到了这些问题。
问题1:dijit.byId(' someId')。值和dijit.byId(' someId')之间有什么区别。得到('值' )问题2:
for(indx in strg){
comment+=strg[indx].replace(/([^\x00-\x7E]|\\s*\\n)*$/g, '');
}
在上面的js片段中,我在浏览器控制台中出现以下错误
replace is not a function
你能帮我解决这个问题吗
感谢。
答案 0 :(得分:3)
回答你的第一部分问题。
dijit.byId( 'ID');已被弃用,您应该使用dijit/registry::byId()
。
registry.byId()
将返回具有相同ID的小部件。
您可以通过以下方式在应用程序中使用它:
require(["dijit/registry"], function(registry){
var widget = registry.byId("yourId");
});
您可以使用widget.get('nameProperty')
读取窗口小部件的属性,例如:
require(["dijit/registry"], function(registry){
var widget = registry.byId("yourId");
var widgetValue = widget.get('value');
});
通常使用“getter”和“setter”来访问窗口小部件的属性。 Dojo为此提供了两个专用功能:
吸气剂:
widget.get('nameProperty');
设置器:
widget.get('nameProperty', 'newValue');
当使用getter和setter时,你允许dojo知道这些操作,例如在使用setter时,dojo事件会正常启动(比如你的小部件的onChange)。
如果您直接在小部件上访问/设置属性,则绕过dojo,缺少框架管道。
更多信息: https://dojotoolkit.org/reference-guide/1.10/dijit/registry.html