5

ExtJSでファイルフィールド入力をリセットするにはどうすればよいですか?やっています:

//this - point on Ext.panel.Form

var form = this.getForm();
form.reset();

var filefield = this.getForm().getFields().get(0);
filefield.reset();

filefield.setValue('');

filefield.value = '';

しかし、これらの方法の1つが機能しないわけではありません。助けてくれてありがとう!

4

4 に答える 4

6

以下のコードを使用すると、

function clearFileUpload(id){
    // get the file upload element
    fileField     = document.getElementById(id);
    // get the file upload parent element
    parentNod     = fileField.parentNode;
    // create new element
    tmpForm        = document.createElement("form");
    parentNod.replaceChild(tmpForm,fileField);
    tmpForm.appendChild(fileField);
    tmpForm.reset();
    parentNod.replaceChild(fileField,tmpForm);
}
于 2012-07-04T07:35:41.070 に答える
2

古い投稿ですが、私もこの問題に遭遇し、よりクリーンな解決策を見つけました。

まず、ファイルフィールドにallowBlank:trueが設定されていることを確認してください。

次に、setRawValueメソッドを次のように呼び出すことができます。

    filefield.setRawValue("");
于 2015-05-14T07:23:00.430 に答える
2

あなたが探しているかもしれない最も簡単な方法は次のようになります:

filefield.fileInputEl.dom.value = '';
于 2016-03-16T09:33:07.187 に答える
1

この回答に基づく:同じファイルを選択してもHTML入力ファイル選択イベントが発生しない

Ext.ux.form.FileUploadFieldコンポーネントで、bindListeners関数の下のchangeイベントに次のコードを追加します。

var that = this;
setTimeout(function() {
    that.fileInput.dom.value = null;
    that.setValue(that.fileInput.dom.value);
}, 100);      

bindListeners: function(){
  this.fileInput.on({
    scope: this,
    mouseenter: function() {
      this.button.addClass(['x-btn-over','x-btn-focus'])
    },
    mouseleave: function(){
      this.button.removeClass(['x-btn-over','x-btn-focus','x-btn-click'])
    },
    mousedown: function(){
      this.button.addClass('x-btn-click')
    },
    mouseup: function(){
      this.button.removeClass(['x-btn-over','x-btn-focus','x-btn-click'])
    },
    change: function(){
      var v = this.fileInput.dom.value;
      this.setValue(v);
      this.fireEvent('fileselected', this, v);

      var that = this;
      setTimeout(function() {
        that.fileInput.dom.value = null;
        that.setValue(that.fileInput.dom.value);
      }, 100);
    }
  }); 
},

于 2016-01-06T20:34:52.597 に答える