extjs 4 - 如何更改字段中的默认消息错误

时间:2013-07-27 08:52:41

标签: extjs field extjs4.1

我在 http://jsfiddle.net/7CLWy/ 中有一个表单面板 这是我的重要代码

items: [{
    xtype: 'textfield',
    fieldLabel: 'First Name',
    allowBlank: false,
    msgTarget: 'under',
    name: 'firstName'
}, {
    xtype: 'datefield',
    allowBlank: false,
    fieldLabel: 'Start date',
    msgTarget: 'under'
}],

我希望在字段中更改默认邮件错误

enter image description here

如何改变。感谢

4 个答案:

答案 0 :(得分:18)

blankText属性是需要字段时的验证消息,invalidText是字段通常验证失败时的文本。您可以在这些属性中添加自己的自定义消息。同样,如果您恰好使用regex属性进行基于正则表达式的验证,则可以使用regexText字段提供自定义验证消息。

    items: [{
        xtype: 'textfield',
        fieldLabel: 'First Name',
        allowBlank: false,
        msgTarget: 'under',
        name: 'firstName',
        blankText: 'This should not be blank!'
    }, {
        xtype: 'datefield',
        allowBlank: false,
        fieldLabel: 'Start date',
        msgTarget: 'under',
        invalidText: 'This value is not a valid date!'
    }, {
        xtype: 'textfield',
        fieldLabel: 'Digits followed by A,B,or C',
        msgTarget: 'under',
        name: 'someText',
        regex: /^\d+[ABC]$/,
        regexText: 'This must be a string of digits followed by A, B, or C!'
    }]

答案 1 :(得分:0)

msgTarget:'side'将在字段右侧添加一个错误图标,仅在悬停时在弹出窗口中显示该消息。

如果您仔细阅读文档,msgTarget http://docs.sencha.com/ext-js/4-1/#!/api/Ext.form.field.Text-cfg-msgTarget还有一个选项

[element id]将错误消息直接添加到指定元素的innerHTML 。你必须使用id动态地在控件的右侧添加“td”。那么如果你指定msgTarget:'element id'就行了。

参考 - > ExtJS4: How to show validation error message next to textbox, combobox etc

答案 2 :(得分:0)

我们可以使用验证方法并返回自定义消息。

{
    xtype: 'textfield',
    fieldLabel: 'Digits followed by A,B,or C',
    msgTarget: 'under',
    name: 'someText',
    validator : function(value){
         var regex= /^\d+[ABC]$/;
         if(!regex.test(value)){
              return "'This must be a string of digits followed by A, B, or C!'"
          }
         return true;
    }

}

答案 3 :(得分:-1)

要更改默认的活动错误消息,我们使用setActiveError(msg)。您将看到以下代码。

items: [{
        xtype: 'textfield',
        fieldLabel: 'First Name',
        allowBlank: false,
        id:'fn',
        msgTarget: 'under',
        name: 'firstName',

    }, {
        xtype: 'datefield',
        allowBlank: false,
        fieldLabel: 'Start date',
        msgTarget: 'under',
       }
    ],
renderTo: Ext.getBody()
});
var m = Ext.getCmp('fn');
m.setActiveError("important"); //can change the text