Dojo 将字段重置为其默认值

Dojo 将字段重置为其默认值,dojo,Dojo,我希望在单击按钮时能够将所有文本字段重置为其默认值 到目前为止,我所做的是查询所有文本字段,并将我编写的名为“textChanged”的函数绑定到更改事件,如下所示: require(["dojo/on","dojo/query"], function(on,query){ query(".Text").on("change",textChanged); }); function textChanged(newVal) { ... } 该函数定义如下: require(["dojo/

我希望在单击按钮时能够将所有文本字段重置为其默认值

到目前为止,我所做的是查询所有文本字段,并将我编写的名为“textChanged”的函数绑定到更改事件,如下所示:

require(["dojo/on","dojo/query"], function(on,query){
    query(".Text").on("change",textChanged);
});
function textChanged(newVal)
{
...
}
该函数定义如下:

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; 虽然它会清除表单上的字段,但在提交表单时,其实际值仍然是手动修改的值。我注意到“this”不同于我从更改事件调用textChanged时,而不是我在单击按钮的上下文中直接调用它时

我尝试使用“hitch”将其上下文设置为它从更改事件中获得的值,但这似乎没有设置正确的上下文:

require(["dojo/on", "dojo/_base/lang"], function(on, lang) {
        lang.hitch(nt, textChanged(nv));
});
确切地说,在textChanged中,我使用console.log(this)显示'this'的值; 当从UI更改文本时调用textChanged时,“这”是:

但是,当通过单击我的按钮调用它时,通过

lang.hitch(nt, textChanged(nv));
“这”是: 窗口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”设置为该值

或者,如果有更好的方法从另一个控件将字段重置为默认值,也可以这样做


提前谢谢

我不确定你想做什么的全部背景,所以不知道这是否回答了你的问题

您可以将表单中的所有小部件重置为默认值,只要它们包装在dijit/form/form小部件中。如果所有小部件都正确包装,则只需在表单上调用reset()

NB:这不适用于本机元素(即标准或字段,它们必须是dijit/form/TextBox…等)

例如:


字段1:

字段1:

重置
单击此处的重置按钮应将字段重置为:field1=“default1”和feield2=“default2”


表单正在调用每个小部件的reset()方法。如果您创建自己的小部件,您需要确保其重置()方法(以及设置其值的\u getValueAttr()方法)正常工作。

我不确定您尝试执行的操作的完整上下文,因此不知道这是否回答了您的问题

您可以将表单中的所有小部件重置为默认值,只要它们包装在dijit/form/form小部件中。如果所有小部件都正确包装,则只需在表单上调用reset()

NB:这不适用于本机元素(即标准或字段,它们必须是dijit/form/TextBox…等)

例如:


字段1:

字段1:

重置
单击此处的重置按钮应将字段重置为:field1=“default1”和feield2=“default2”

表单正在调用每个小部件的reset()方法。如果您创建自己的小部件,则需要确保其重置()方法正确工作(以及设置其值的\u getValueAttr()方法)。

reset()
还重置验证器的状态。(在
reset()
之后,字段不会被标记为无效)
reset()
也会重置验证器的状态。(重置()后字段未标记为无效。)