Я переехал с ExtJs 4.1
на ExtJs 4.2
, из-за ужасных неприятностей с filefield
компонента. Основная проблема заключалась в том, что в ExtJs 4.1
файловое поле было очищено после каждого представления формы. В соответствии с этим thread, в ExtJs 4.2
они решили эту проблему, однако, я по-прежнему сталкиваюсь с той же проблемой в своем приложении, несмотря на то, что я установил clearOnSubmit
в false
. Я даже понял, что код вызывает целые проблемы:Filefield with clearOnSubmit false по-прежнему очищается
Ext.define('Ext.form.field.FileButton', {
...
createFileInput : function(isTemporary) {
var me = this;
//ATTENTION!
//before me.el.createChild is called
//me.fileInputEl contains initial filefield:
//<input id="filefield-2144-button-fileInputEl" class=" x-form-file-input" type="file" size="1" name="file_name" role="">
me.fileInputEl = me.el.createChild({
name: me.inputName,
id: !isTemporary ? me.id + '-fileInputEl' : undefined,
cls: me.inputCls,
tag: 'input',
type: 'file',
size: 1
});
//ATTENTION!
//now initial fielfield is gone, even though we have set clearOnSubmit to false
me.fileInputEl.on('change', me.fireChange, me);
}
...
Эта библиотека метод вызывается в какой-то момент, когда форма передается на сервер и destroyes начальный элемент:
<input id="filefield-2144-button-fileInputEl" class=" x-form-file-input" type="file" size="1" name="file_name" role="">
и заменяет он с новым пустым:
<input name="file_name" id="ext-gen4414" class="x-form-file-input" type="file" size="1">
Итак, что не так с этим и как я могу исправить эту ошибку библиотеки.
Скрипач для этого. https://fiddle.sencha.com/#fiddle/1gd2 – UDID