Javascript onChange事件影响整个表单
这里有一个简短的Webix表单,我试图突出显示值已更改的字段,但我一直坚持这样做 这是我的密码:Javascript onChange事件影响整个表单,javascript,user-interface,uitextfield,onchange,webix,Javascript,User Interface,Uitextfield,Onchange,Webix,这里有一个简短的Webix表单,我试图突出显示值已更改的字段,但我一直坚持这样做 这是我的密码: webix.ui({ view:"form", width: 250, elements: [ { view:"text", label:'Phone', labelPosition: "top", name:"phone", value: "" }, { view:"text", label:'Email'
webix.ui({
view:"form",
width: 250,
elements: [
{ view:"text", label:'Phone', labelPosition: "top", name:"phone", value: "" },
{ view:"text", label:'Email', labelPosition: "top", name:"email", value:"" },
],
on:{
onChange: function(newv, oldv){
webix.html.addCss(this.getNode(), "new_v");
}
}
});
片段:
如您所见,
onChange
事件会影响每个字段,无论其中哪个字段有新值。有没有办法解决这个问题?将事件添加到每个文本中,而不是表单中
webix.ui({
view:"form",
width: 250,
elements: [
{ view:"text", label:'Phone', labelPosition: "top", name:"phone", value: "",
on:
{
onChange: function(newv, oldv){
webix.html.addCss(this.getNode(), "new_v");
}
}
},
{ view:"text", label:'Email', labelPosition: "top", name:"email", value:"" ,
on:
{
onChange: function(newv, oldv){
webix.html.addCss(this.getNode(), "new_v");
}
}
},
]
});
您可以使用
this.$eventSource
onChange: function(newv, oldv){
var source = this.$eventSource;
webix.html.addCss(source.getNode(), "new_v");
}
ValVert使用单个事件处理程序的想法很好,但不需要在每个视图中重复相同的事件处理代码。您可以使用表单的属性定义一次
onChange
处理程序。这是你的例子。在表单中键入stuff,然后按Enter键
webix.ui({
视图:“表单”,
宽度:250,
元素配置:{
标签位置:'顶部',
关于:{
onChange:函数(newv、oldv){
webix.html.addCss(this.getNode(),'new_v');
}
}
},
要素:[
{视图:“文本”,标签:“电话”,名称:“电话”},
{视图:“文本”,标签:“电子邮件”,名称:“电子邮件”},
],
});代码>
。新的\u v输入{
背景颜色:浅黄色;
}
您只能使用定义一次onChange。