Ext JS - отключение отправки FormPanel в случае сбоя проверки - PullRequest
0 голосов
/ 16 января 2019

Я не могу отключить кнопку при сбое проверки формы. Я хочу использовать регулярное выражение: /^[0-9]+(,[0-9]+)*$/ для проверки текстовой области. Я хочу отключить activatebutton.

Я попытался formBind, и проверка монитора все еще не работает.

Вот код:

items: [{
    xtype: 'container',
    layout: {
        type: 'column'
    },
    items: [{
        columnWidth: .75,
        layout: "form",
        monitorValid: true,
        items: {
            fieldLabel: 'Please Enter  Activation Id',
            name: 'Activate',
            xtype: 'textarea',
            msgTarget: 'under',
            growMax: 200,
            allowBlank: false,
            blankText: "Please Enter Comma separated AssetIds",
            regex: /^[0-9]+(,[0-9]+)*$/,
            anchor: '100%'
        }
    }, {
        columnWidth: .25,
        items: {
            xtype: 'button',
            name: 'button',
            id: 'activatebutton',
            width: 100,
            text: 'Set for auto-activation',
            formBind: true,
            listeners: {
                click: function () {
                    shared.Notifier.success('The requ  ');
                    this.seForActivation();
                },
                scope: this
            }
        }
    }]
}]

1 Ответ

0 голосов
/ 16 января 2019

Чтобы formBind заработал, вам нужно иметь Ext.form.Panel. Панель формы обработает проверки полей формы и вызовет formBind, когда вся форма действительна.

Следующий код будет обрабатывать formBind, см. Также рабочий Fiddle и Ext.form.Panel документация .

{
    xtype: 'form',
    layout: 'column',
    items: [{
        columnWidth: .75,
        layout: "form",
        monitorValid: true,

        items: {
            fieldLabel: 'Please Enter  Activation Id',
            name: 'Activate',
            xtype: 'textarea',
            msgTarget: 'under',
            growMax: 200,
            allowBlank: false,
            blankText: "Please Enter Comma separated AssetIds",
            regex: /^[0-9]+(,[0-9]+)*$/,
            anchor: '100%'

        }
    }, {
        columnWidth: .25,
        items: {
            xtype: 'button',
            name: 'button',

            id: 'activatebutton',
            width: 100,
            text: 'Set for auto-activation',
            formBind: true,
            listeners: {
                click: function () {

                    shared.Notifier.success('The requ  ');
                    this.seForActivation();
                },
                scope: this
            }
        }
    }]
...