2016-06-23 2 views
0

Я хочу предотвратить проверку полей формы с помощью display: none.ExtJS Предотвратить проверку полей формы с отображением: none

Например, поля с ipv6 установлены на display: none, я не хочу проверять эти поля с формой isValid() метод.

var form = new Ext.form.FormPanel({ 
 
    frame: true, 
 
    bodyStyle: 'padding:5px 5px 0;', 
 
    items: [{ 
 
    xtype: 'radiogroup', 
 
    id: 'ip_type', 
 
    fieldLabel: 'IPType', 
 
    columns: 2, 
 
    items: [{ 
 
     boxLabel: 'IPv4', 
 
     name: 'ip_type', 
 
     inputValue: 'ipv4', 
 
     checked: true 
 
    }, { 
 
     boxLabel: 'IPv6', 
 
     name: 'ip_type', 
 
     inputValue: 'ipv6' 
 
    }], 
 
    listeners: { 
 
     'change': function(radioGroup, checkedRadio) { 
 
     if (checkedRadio.inputValue == 'ipv4') { 
 
      Ext.fly('ip').setStyle({ 
 
      display: 'block' 
 
      }); 
 
      Ext.fly('ipv6').setStyle({ 
 
      display: 'none' 
 
      }); 
 
      Ext.getCmp('ip').enable(); 
 
      Ext.getCmp('ipv6').disable(); 
 
     } else { 
 
      Ext.fly('ip').setStyle({ 
 
      display: 'none' 
 
      }); 
 
      Ext.fly('ipv6').setStyle({ 
 
      display: 'block' 
 
      }) 
 
      Ext.getCmp('ip').disable(); 
 
      Ext.getCmp('ipv6').enable(); 
 
     } 
 
     } 
 
    } 
 
    }, { 
 
    id: 'ip', 
 
    layout: 'column', 
 
    border: false, 
 
    hideBorders: true, 
 
    items: [{ 
 
     layout: 'form', 
 
     items: [{ 
 
     fieldLabel: 'IP', 
 
     xtype: 'ipv4field', 
 
     name: 'ip', 
 
     allowBlank: false, 
 
     regex: ipv4_reg, 
 
     }] 
 
    }, { 
 
     html: '/' 
 
    }, { 
 
     xtype: 'numberfield', 
 
     name: 'netmask', 
 
     allowBlank: false, 
 
     allowDecimals: false, 
 
     minValue: 0, 
 
     maxValue: 32, 
 
     width: 70 
 
    }] 
 
    }, { 
 
    id: 'ipv6', 
 
    layout: 'column', 
 
    border: false, 
 
    hideBorders: true, 
 
    items: [{ 
 
     layout: 'form', 
 
     items: [{ 
 
     fieldLabel: 'IP', 
 
     xtype: 'textfield', 
 
     name: 'ipv6', 
 
     allowBlank: false, 
 
     regex: ipv6_reg, 
 
     }] 
 
    }, { 
 
     html: '/' 
 
    }, { 
 
     xtype: 'numberfield', 
 
     name: 'netmaskipv6', 
 
     //allowBlank: false, 
 
     allowDecimals: false, 
 
     minValue: 0, 
 
     maxValue: 128, 
 
     width: 70 
 
    }] 
 
    }] 
 

 
});

+2

Вы можете добавить код? – aviram83

ответ

0

Чтобы избежать проверки радио вы можете использовать Ext.form.Radio.disabled или если вы хотите отправить значение поля во время отправки формы вы можете установить Ext.form.Radio.validationEvent в false.

Также его лучше использовать свойство ExtJS Ext.form.Radio.hidden вместо css display.

+0

Благодарим вас за ваш ответ. Ключевой проблемой является то, что у меня много скрытых элементов формы, я не хочу, чтобы они были обнаружены, не могли быть отключены, и я надеюсь, что мой дисплей: элемент блока будет обнаружен – baibm

Смежные вопросы