【问题标题】:extjs 4 - How change default message error in fieldextjs 4 - 如何更改字段中的默认消息错误
【发布时间】:2013-07-27 14:10:17
【问题描述】:

我在 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'
}],

我想更改字段中的默认消息错误

如何改变它。谢谢

【问题讨论】:

标签: extjs field extjs4.1


【解决方案1】:

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!'
    }]

【讨论】:

  • 拯救了我的一天 :)
【解决方案2】:

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

【讨论】:

  • sorry :( 我读了,但我不太明白,我试试 msgTarget: 'myid' 和 document.getElementById("myid").innerHTML='my msg';。你能做一个示例工作谢谢
【解决方案3】:

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

{
    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;
    }

}

【讨论】:

    【解决方案4】:

    要更改默认的活动错误消息,我们使用 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
    

    【讨论】:

      猜你喜欢
      • 2018-06-04
      • 2017-03-09
      • 2018-12-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-04
      • 2016-12-16
      • 2020-08-15
      • 2016-12-22
      相关资源
      最近更新 更多