Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   проверка формы на изменение полей, кроме одного! (https://javascript.ru/forum/extjs/14114-proverka-formy-na-izmenenie-polejj-krome-odnogo.html)

cmygeHm 30.12.2010 12:12

проверка формы на изменение полей, кроме одного!
 
Привет всем!
Есть такой код:

var form = new Ext.FormPanel({
        id: 'form_id',
        url: 'curl',
        frame: true,
        monitorValid: true,
        trackResetOnLoad: true,
        items: [
                  
        ],
        listeners: {
            clientvalidation: function(form, valid){
                if (form.getForm().isDirty())
	   		console.log('DIRTY!!!');
            }

        }

    });

проверяющий не изменялись ли какие поля формы. А есть поле формы(комбобокс), которое не должно учитываться при проверке формы. Как сделать это? Выставлять для формы form.dirty=false не получается.

Спасибо за Ваше драгоценное время.

Ex_Soft 04.01.2011 12:40

Цитата:

Сообщение от cmygeHm (Сообщение 85782)
А есть поле формы(комбобокс), которое не должно учитываться при проверке формы. Как сделать это?

allowBlank/preventMark/validator?

cmygeHm 10.01.2011 09:33

нет, совсем не то...

cmygeHm 14.01.2011 10:21

Есть еще идеи???

Ex_Soft 14.01.2011 10:35

Цитата:

Сообщение от cmygeHm (Сообщение 87166)
нет, совсем не то...

А чем Вас предложенные варианты не устроили? Тот же validator? Повесьте на него функцию возвращающую true...

cmygeHm 14.01.2011 10:49

я повесил, не срабатывает:

validator: function(){
        return true;
},

Я нашел, что если после изменения значения в combo выполнить
Ext.form.TextField.superclass.reset.call(Ext.getCmp('combo_id'));

то он становится валидным. Думаю привяжу его к событию onselect. ??? Как Вы на это смотрите?

Ex_Soft 14.01.2011 11:33

Цитата:

Сообщение от cmygeHm (Сообщение 87940)
я повесил, не срабатывает

Но функция, как таковая, хоть дергается? Поставьте брякпоинт на
validator: function(){
==>        return true;
},

Попадаем?
Цитата:

Сообщение от cmygeHm (Сообщение 87940)
Я нашел, что если после изменения значения в combo выполнить
Ext.form.TextField.superclass.reset.call(Ext.getCmp('combo_id'));

то он становится валидным. Думаю привяжу его к событию onselect. ??? Как Вы на это смотрите?

Да ректально как-то это, IMHO... Должно быть все просто как арбуз: операция довольно-таки довольно тривиальная (исключить контрол из валидирования)... Такие извраты...

cmygeHm 14.01.2011 11:47

заходит в тело функции. все ок.

cmygeHm 14.01.2011 11:52

xtype: 'container',
                                layout: 'column',
                                items: [
                                    {
                                        xtype: 'combo',
                                        valueField: 'id',
                                        id: 'combo_id',
                                        width: 140,
                                        displayField: 'action_name',
                                        triggerAction: 'all',
                                        selectOnFocus:true,
                                        hiddenName: 'actions',
                                        validator: function(){
                                            return true;
                                        },
                                        store: new Ext.data.JsonStore({
                                            autoLoad: true,
                                            url: 'url',
                                            fields: ['id','action_name'],
                                            root: 'rows',
                                            listeners: {
                                                load: function(){
                                                    Ext.getCmp('combo_id').setValue(1);
                                                }   
                                            }
                                        })
                                        
                                    }

Ex_Soft 14.01.2011 12:06

Дык, получается, помог validator?


Часовой пояс GMT +3, время: 15:06.