Extjs form.submit () вызывает изменение значения поля - PullRequest
0 голосов
/ 23 июля 2010

Я вижу значения полей перед отправкой:

var itemsForm = '';
function mostraItems(item, index, length) { itemsForm += item.id + ':' + item.name + ':' + item.value + ':' + index + '\n'; }
myForm.form.items.each(mostraItems);
alert (itemsForm);
myForm.form.submit({...

Проблема в том, что отправленные значения отличаются от того, что я вижу перед вызовом form.submit (). Одним из полей является поле со списком:

var myCombo = new Ext.form.ComboBox({
    //autoWidth: true,
    width: 250,
    displayField: 'theFieldText',
    editable: false,
    emptyText: 'Select something ...',
    fieldLabel: 'Some text',
    listeners: { 'select': { fn: theOnSelect, scope: this} },
    mode: 'local',
    selectOnFocus: true,
    store: theStore,
    triggerAction: 'all',
    typeAhead: true,
    valueField: 'theFieldValue',
    name: 'fieldName'
});

В запросе используется сумма значений valueField и displayField. Скажем, поле значения содержит «1», а displayField содержит «некоторый текст», а в запросе вместо «1» вводится «1 (некоторый текст)».

Что-то происходит после или во время вызова form.submit (), и я не могу найти, что это такое.

Использование Ext 2.3

Ответы [ 2 ]

0 голосов
/ 26 октября 2014

Как описал Игорь, вы всегда должны использовать form.getForm().getValues(), чтобы увидеть, какие значения отправляются.

И если для какого-либо конкретного поля вас не устраивает способ форматирования, отображения или вычисления ваших данных, вы всегда можете переопределить метод getSubmitData для этого поля.

0 голосов
/ 24 июля 2010

Во время отправки формы не происходит ничего необычного.

Прежде всего, проверьте значения формы непосредственно перед отправкой формы (но не так, как вы это делаете сейчас). Вы используете Firebug (надеюсь да)?

myForm.getValues();

дает вам пары ключ / значение по мере их отправки.

Так введите в консоль

Ext.getCmp('your-form-id').getForm().getValues();

или введите в свой код

console.log(myForm.getValues());

вместо alert () и смотрите вывод. Затем, когда вы отправляете форму стандартным способом

myForm.submit({url: 'submit-url'})

нет никаких шансов, что ваши ценности будут другими. Как вы отправляете форму?

...