Принудительное регулярное выражение в поле fieldset — ExtJS

#javascript #regex #extjs

#javascript #регулярное выражение #extjs

Вопрос:

Как мне принудительно применить регулярное выражение к элементу поля в fieldset? Например, в приведенном ниже коде есть Country поле, но мне нужно принудительно проверять регулярное выражение, когда текстовое поле выходит из фокуса. Идея заключается в использовании Ext.ApplyIf , но интересно, как я мог бы это сделать?

 Ext.create('Ext.form.Panel', {
    fullscreen: true,
    items: [
        {
            xtype: 'fieldset',
            title: 'About You',
            instructions: 'Tell us all about yourself',
            items: [
                {
                    xtype: 'textfield',
                    name : 'firstName',
                    label: 'First Name'
                },
                {
                    xtype: 'textfield',
                    name : 'lastName',
                    label: 'Last Name'
                },
                {
                    xtype: 'textfield',
                    name : 'country',
                    label: 'Country',
                    regex: /^[A-Z]{2}$/,
                    regexText: 'Two letter country code (ISO 3166-1 alpha 2 standard) (eg:NO)!',
                    allowBlank: false
                }
            ]
        }
    ]
});
  

Ответ №1:

Из fullscreen: true я предполагаю, что это современный extjs.

В extjs modern вы можете прослушивать только focus событие, подобного которому нет focusleave (которое существует в extjs classic toolkit). В extjs modern также textfield не имеет таких параметров, как regex и regexText.

Вы не можете этого сделать с помощью основных функций extjs-field.

Посмотрите на Ext.field.Определение текста.