我想知道为什么对于某些小部件(例如货币小部件),当我执行 dojo.byId 以获取文本框的值时,我会返回格式化的值,这意味着我会返回如下内容:带有美元符号的“$44.3”。
但是,当我创建一个自定义百分比文本框时,它继承自 NumberTextbox(货币文本框小部件也是如此),出于某种原因,执行 dojo.byId 会返回没有 % 的值,即使我看到在文本框。
我正在尝试对这些东西进行单元测试,出于某种原因,为了货币控制,我能够做这样的事情:
var formatedValue = dojo.byId("currencyTextBox").value;
doh.t(formatedValue === "$46.93", "incorrect formatting");
当我检查 formattedValue 时,它给了我“46.93 美元”。
但是,当我尝试对百分比文本框进行相同类型的处理时,如果我在文本框中看到例如“55%”,这将返回 55,而不是“55%”:
var formatedValue = dojo.byId("percentTextBox").value;
doh.t(formatedValue === "93%", "incorrect formatting");
所以我不明白为什么行为会在使用 dojo.byId 获取文本框值方面表现不同。(显然,如果我要做一个 widgetInstance.get("value"); 我希望只返回一个整数,即没有格式的原始数字。)