2017-06-13 5 views
9

ファイルを操作するためのディレクティブを作成しました。私は、ファイルを変更したり、新しいものを選択すると、私はこのコードを呼び出す:要素値を変更するときに呼び出されるイベントを変更します。IE 11/Angular

element.val('');

私はその後、選択したファイルを削除して、同じことを選択できるようにこれをやっています。私がこれをしないと、選択したファイルを削除して同じファイルを再度選択すると、changeイベントは呼び出されず、私は何をする必要があるのでしょうか。

入力の値を変更したときにIEが変更イベントを呼び出さないようにする方法があるかどうかを知りたいだけです。

私は少しを検索し、このようなコメントを見つけた:

The onchange event on textboxes and textarea elements only fires when the element loses focus, and if its value is now other than its value when it got focus.

だから私はちょうどプログラム的デ値を変更すると、この変更イベントが呼び出されることになっていませんでした。

アイデア?

EDITは:

私はあなたのリスナーへの複数の呼び出しを引き起こし、element.val('')は新しいchangeイベントを発するようだbehaviour

答えて

6

でjsfiddleを作成しました。

element.bind('change', function(){ 
    if(!element.val()) { 
     return; 
    } 
    element.val(''); 
    // code goes here 
}); 
+2

私が使用してお勧めしたい[ 'on'の](http://api.jquery.com/on/)の代わりに:それはあなたが以下のように入力値をチェックすることで、この奇妙な行動を避けることができ、言いました'bind' – Renan

+0

element.bindは廃止予定です。代わりにon()を使用します。 – fernandoocf

関連する問題