我有一个文本字段,使用
将电子邮件作为其值vtype : 'email'
我正在尝试使用按钮验证此文本字段,其中,当单击时,它应该提醒我文本字段是否有电子邮件输入。根据我的代码,无论输入如何,验证总是给我 false 。我该怎么做?这是我的代码:
Ext.create('Ext.form.Panel', {
title: 'Contact Info',
width: 300,
bodyPadding: 10,
renderTo: Ext.getBody(),
items: [{
xtype: 'textfield',
id: 'emailField',
fieldLabel: 'EmailAddress',
vtype: 'email',
allowBlank: false,
validator: function (val) {
var fieldValidation = Ext.form.field.VTypes.email(val);
if (fieldValidation === true) {
this.setFieldStyle("background-color : #BCF5A9");
} else {
this.setFieldStyle("background-color : #F6CECE");
}
},
}, {
xtype: 'button',
text: 'select',
handler: function () {
alert(Ext.getCmp('emailField').isValid());
}
}]
});
P.S:我理解问题出在我在文本字段中使用的validator: function (val)
。但我需要它根据输入更改文本字段的颜色。还有其他方法吗?
修改
我通过将validator : function
更改为change : function
listeners: {
'change': function (thisField) {
if (thisField.isValid()) {
this.setFieldStyle("background-color : #BCF5A9");
} else {
this.setFieldStyle("background-color : #F6CECE");
}
}
}
答案 0 :(得分:1)
我通过将validator : function
更改为change : function
listeners: {
'change': function (thisField) {
if (thisField.isValid()) {
this.setFieldStyle("background-color : #BCF5A9");
} else {
this.setFieldStyle("background-color : #F6CECE");
}
}
}