我希望能够在单击按钮时将所有文本字段重置为其默认值。
到目前为止,我所做的是查询所有文本字段并将我编写的名为“textChanged”的函数绑定到更改事件,如下所示:
require(["dojo/on","dojo/query"], function(on,query){
query(".Text").on("change",textChanged);
});
函数定义如下:
function textChanged(newVal)
{
...
}
我发现我可以通过赋值来重置函数体中的值:
newVal.target.value = newVal.target.defaultValue;
如果此函数由更改事件触发。
我想要做的是如果单击按钮,那么我想执行 newVal.target.value = newVal.target.defaultValue 并且无法正确获取上下文。
我尝试在调用时保留“this”变量以及保留“newVal”参数。如果我尝试在上下文之外设置值,则更新不会保留。我尝试将'this'值设置为其他值(nt = this)并将newValue设置为另一个变量(nv = newValue),然后我想执行:nv.target.value = nv.target.defaultValue; 并且虽然清除了表单上的字段,但是当表单提交时,它的实际值仍然是手动修改的值。我注意到当我在按钮单击上下文中直接调用它时,从更改事件中调用 textChanged 时,'this' 与它不同。
我尝试使用 'hitch' 调用它,将 this 的上下文设置为其从 change 事件中获得的值,但这似乎没有设置正确的上下文:
require(["dojo/on", "dojo/_base/lang"], function(on, lang) {
lang.hitch(nt, textChanged(nv));
});
准确地说 - 在 textChanged 中,我使用 console.log(this); 显示 'this' 的值;当文本从 UI 更改时调用 textChanged 时,“this”为:
然而,当通过单击我的按钮调用它时,该按钮通过
lang.hitch(nt, textChanged(nv));
'this' is: Window fauxRedirect.lsw?applicationInstanceId=guid%3A1eae6af09bf6f543%3A-6644aeb4%3A13a8a4c429e%3A-7ffe&zWorkflowState=2&zTaskId=p1&applicationId=2&zComponentName=CoachNG&zComponentId=3028.b1094dc3-da2b-461a-8d56-f6444891c174&zDbg=2#%20 %20
我已经确认'nt'确实是一样的'
所以,我正在尝试执行 textChanged 函数,以便将“this”设置为该值。
或者,如果有更好的方法可以从另一个控件将字段重置为其默认值 - 那也可以。
提前致谢。