ExtJS, почему form.getValues ​​() возвращает только «1», но не «0» для состояния флажка? - PullRequest
2 голосов
/ 28 ноября 2011

У меня есть простая ExtJS 4 (форма xtype) внутри окна.Имеет два поля и кнопку сохранения.Одним из полей является строка.Это отлично работает.Если оно пустое, getValues ​​() дает мне поле пустым.Если он установлен, я получаю значение.Однако флажок отличается.Если это проверено, я получаю значение «1».ОДНАКО, если я снимаю флажок (или не отмечаю его), я не получаю никакого значения - поле не отображается в результате getValues ​​()!ПОЧЕМУ ??

items: [
                    {
                        xtype: 'checkbox',
                        name : 'insuranceVerified',
                        fieldLabel: 'insuranceVerified',
                        inputValue:'1',
                        value:'1'  //does not make a difference
                    },
                    {
                        xtype: 'textfield',
                        name : 'ru',
                        fieldLabel: 'ru'
                    }
]

Я ловлю событие нажатия кнопки сохранения и вызываю эту функцию в моем контроллере:

updateEncounter: function(button) {
        console.log('clicked the Save button');
        var win    = button.up('window'),
            form   = win.down('form'),
            record = form.getRecord(),
            values = form.getValues();

// values properly shows the ru field on the form, but only shows insuranceVerified if it's checked - is not in values if it's unchecked... ??!

            debugger;
        record.set(values);
        this.getEncountersStore().sync();
        win.close();
    }

Я только что понял что-то еще, хотя это не полный ответдля меня: если я изменю код выше, чтобы он получил форму (я предполагаю, из панели формы):

 form   = win.down('form').getForm(),   // instead of win.down('form')

Затем, используйте getFieldValues ​​() для этого нового объекта вместо getValues ​​(), ятеперь установите флажок, даже если он не отмечен.

values = form.getFieldValues();  // instead of getValues()

ОДНАКО, возвращаемое мной значение равно «ложь» (или истина), а не «0» или «1», как я указал с помощьюinputValue: '1'.

Кроме того, я даже попытался установить 'значение' для поля '1', без разницы, делаю я это или нет для getValues ​​или getFieldValues ​​().

Ответы [ 3 ]

6 голосов
/ 09 января 2015

Это работает для меня.Надеюсь помочь с

{
   xtype: 'checkbox',
   boxLabel: modelFields[i].label,
   name: modelFields[i].name,
   //magic!
   inputValue: 1,
   uncheckedValue: 0
}
0 голосов
/ 28 ноября 2012

вы можете использовать

var answer1IsCorrect = Ext.getCmp('Answer1RadioButton').checked ? 1 : 0;

вместо true или false

0 голосов
/ 28 ноября 2011

Отправить HTML-форму с пустыми флажками

Что вы ожидаете получить, если флажок не установлен? Вы указали отправляемое значение, если оно проверено.

Вот еще одно решение: Почему состояние флажка не всегда передается в сценарий PHP?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...