2014-10-06 2 views
2

Я использую версию 4.1.1 ExtJS.Поле загрузки файла сбрасывается при отправке формы

Я пытаюсь создать форму для загрузки файла, используя FileField следующим образом:

{ 
    xtype: 'filefield', 
    itemId : 'my-file', 
    name: 'my file', 
    emptyText : 'No file chosen', 
    fieldLabel: 'Upload File', 
    submitValue: true, 
    allowBlank : false, 
    buttonText: 'Browse', 
    listeners: { 
     change: function(fld, value) { 
      var newValue = value.replace(/C:\\fakepath\\/g, ''); 
      fld.setRawValue(newValue); 
     } 
    } 
} 

Когда форма отправлена, filefield сбрасывается.

Как я вижу в http://www.sencha.com/forum/showthread.php?135109-File-upload-field-is-empty-by-re-submitting-of-the-form

Я пытаюсь переопределить filefield к:

Ext.override(Ext.form.field.File, { 
    extractFileInput: function() { 
     var me = this, 
      fileInput = me.fileInputEl.dom, 
      clone = fileInput.cloneNode(true); 

     fileInput.parentNode.replaceChild(clone, fileInput); 
     me.fileInputEl = Ext.get(clone); 

     me.fileInputEl.on({ 
      scope: me, 
      change: me.onFileChange 
     }); 

     return fileInput; 
} 

Это исправны, когда я отправить форму.

Значение, которое я вижу в текстовом поле, не сбрасывается в пустые.

Однако, когда я снова отправлю форму без повторного выбора файла, данные, которые будут отправлены на сервер, равны нулю.

Данные, которые должны быть отправлены на сервер, должны быть сохранены.

Дополнительная информация:

Эта проблема происходит, когда я использую Chrome и IE, кажется, это отлично работает на Firefox.

Связано ли это с C:\\fakepath, которое я вижу на текстовом поле при выборе файла?

Как исправить эту проблему?

ответ

7

установить clearOnSubmit в false на вашем filefield