Dojo 将字段重置为其默认值
我希望在单击按钮时能够将所有文本字段重置为其默认值 到目前为止,我所做的是查询所有文本字段,并将我编写的名为“textChanged”的函数绑定到更改事件,如下所示:Dojo 将字段重置为其默认值,dojo,Dojo,我希望在单击按钮时能够将所有文本字段重置为其默认值 到目前为止,我所做的是查询所有文本字段,并将我编写的名为“textChanged”的函数绑定到更改事件,如下所示: require(["dojo/on","dojo/query"], function(on,query){ query(".Text").on("change",textChanged); }); function textChanged(newVal) { ... } 该函数定义如下: require(["dojo/
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()
也会重置验证器的状态。(重置()后字段未标记为无效。)