dijit.byId('someId').value和dijit.byById(#39;someId&#

what is the difference between dijit.byId('someId').value and dijit.byId('someId').get('value')

本文关键字:someId dijit byById byId value      更新时间:2023-09-26

当我在客户端为我的一个应用程序进行验证时。我脑子里有这些问题。

问题1:dijit.byId('someId').value和dijit.byNid('someId').get('value')之间有什么区别

问题2:

for(indx in strg){
        comment+=strg[indx].replace(/([^'x00-'x7E]|''s*''n)*$/g, '');
    }

在上面的js片段中,我在浏览器控制台中得到了以下错误

replace is not a function

你能帮我找个人解决这个吗

谢谢。

回答你的第一部分问题。

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"answers"setter"来访问小部件的属性。Dojo为此提供了两个专用功能:

Getter:widget.get('nameProperty');

设置程序:widget.get('nameProperty', 'newValue');

当使用getter和setter时,允许dojo知道这些操作,例如当使用setter时时,dojo事件会正确地触发(比如小部件的onChange)。

如果您绕过dojo直接访问/设置小部件上的属性,则缺少框架管道。

更多信息:https://dojotoolkit.org/reference-guide/1.10/dijit/registry.html