2013-09-04 8 views
6

フォームにはjqueryとcssと送信ボタンでスキンされたファイル入力があります。IE10 - アップロードするファイルを選択した後にフォームを送信するには2回クリックする必要があります

<form action="#" method="POST"> 
    <input style="width:150px" type="hidden" name="MAX_FILE_SIZE" value="40000"/> 
    <div class="l-input-file"> 
    <input style="margin-bottom: 0px" type="file" id="myInput" name="myInput" size="16" /> 
    </div> 
    <div><button type="submit" class="btn-black">Continuer</button></div> 
</form> 

http://jsfiddle.net/CsL9t/

ここでの問題は、唯一のIE10に表示されます:ファイルの後、送信ボタンを選択されたフォームを送信できるようにするには2回クリックする必要があります。

ファイルの入力が変更されたときにボタンにフォーカスを当てようとしましたが、それは役に立たない。

私は

jQuery('#myInput').parents('form').find("button[type='submit']").click(); 

、jQueryのを使用してクリックをトリガーしようとしたが、私は2回メッセージ受信した第3の時間を提出する前に、「アクセスが拒否されました」。

いずれの入力やアドバイスも高く評価されます。 ありがとう

+1

'$のinput.trigger( 'クリック')も参照してください;'問題です。ファイル入力でクリックイベントをトリガすると、IEでファイル入力が検出されます。 – Musa

+0

「汚れ」はどういう意味ですか? – svassr

+0

ありがとう@Musa。実際、入力ファイルのトリガクリックを削除し、新しいボタンに '' 'opacity:0;' 'を付けてみましょう。 – svassr

答えて

5

$input.trigger('click');は、アクセス拒否エラーの原因です。
ファイル入力でクリックイベントをトリガーすると、IEでファイル入力が汚染され、ある程度はフォームを送信したり、FormDataオブジェクトでそれを使用したりすることはありません。

getting access is denied error on IE8

+0

ありがとうございました... !! – dalgard

関連する問題