2017-12-06 43 views
0

以下のコードは、safri mobileを除くすべての場所で動作します。 onchangeは決して誘発されません。javascriptファイル入力onchangeが機能していない[ios safariのみ]

// create a hidden file input element 
var input = document.createElement("input"); 
input.type = "file"; 

// when the input content changes, do something 
input.onchange = 
function(event) 
{ 
    // upload files 
} 

// Trigger file browser 
input.click(); 

それらすべてがファイル入力のいくつかの他の可視表現の形態でもあり、それらはすべてフォームクリア回避策を伴うシナリオを参照してしかし、私は同様の例を発見しました。それはここではうまくいかないでしょう。

このコードは、新しいものを置き換えるために画像をクリックすると呼び出されます。

ヒント私が間違っていることは何ですか?

+0

'onchange'は、クライアントが実際にファイルを選択するまでトリガされません。 '.click()'は ''の一部のブラウザでは動作しないかもしれません。 – PHPglue

+0

.clickは私がテストしたことがどこでも機能し、Safari iOSでファイルセレクタが正しく開かれています。トリガされないのは、ファイルが選択され、選択ダイアログが閉じられた後のonchange *です。 – resle

答えて

0

私はのろわれます:iOSのサファリの上に2つの追加の条件は、他のブラウザに比べて必要です:

1)入力は、実際にDOMに追加する必要があります。

2).onchangeを設定すると動作しません。代わりにaddEventListenerを使用する必要があります。

関連する問題