2016-01-05 3 views
0

Существует короткая форма Webix, и я пытаюсь выделить поле, значение которого изменилось, но я застрял в этом.Событие onChange влияет на всю форму

Вот мой код:

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");   
      } 
     } 
    }); 

Сниппет: http://webix.com/snippet/b47894fa

Как вы можете видеть, onChange событие влияет на каждое поле, независимо от того, какие из них новые значения. Есть ли способ исправить это?

ответ

0

Добавить событие в каждый текст, а не в форму.

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");   
     } 
     } 
    }, 
    ] 
}); 
0

Вы можете получить доступ к источнику OnChange события с помощью this.$eventSource

onChange: function(newv, oldv){   
    var source = this.$eventSource; 
    webix.html.addCss(source.getNode(), "new_v");   
    }