1

ファイル入力クリックを処理するChromeとIEの動作の違いに気づきました。

ここにjsFiddleの例があります。

Chromeでは、入力(テキストまたはボタンビット)の任意の場所をクリックすると、ファイルダイアログがトリガーされます。

IE(7でテスト)では、テキストビットではなく、実際のボタンをクリックする必要があります。

問題は、通常のテキストボックスの上に透過的なファイル入力を使用していることです。テキストボックスをクリックすると、ダイアログが開きます。Chromeでは、入力の合計サイズがテキストボックスと同じサイズであるため、これは正常に機能しています。

IEでは、ユーザーが透過ファイル入力の実際のボタン部分をクリックする必要があるため、正しく機能しません。

これを修正する方法のアイデアはありますか?

ありがとう

4

2 に答える 2

3

これらの人がどのようにそれを行ったかを見てください:http ://www.filamentgroup.com/lab/jquery_custom_file_input_book_designing_with_progressive_enhancement/

戦略は同じで、カスタム設計されたファイル入力を標準のものにオーバーレイし、ユーザーが標準のものと対話できるようにします。

彼らは、jQueryを使用してクリックイベントを明示的にバインドし、IEとOperaのクリックをサポートする小さなハックを作成しました。

参照:http ://dwpe.googlecode.com/svn/trunk/fileinput/js/jQuery.fileinput.js (52行目)

于 2010-10-12T11:47:06.203 に答える
1

file入力ボックスでクリックイベントをトリガーする方法を見つける必要があります。

おそらく、ファイルボックスにクリックイベントを発行するクリックハンドラーを基になるテキストボックスに追加します。

例: http: //jsfiddle.net/MqbrV/

Firefox(ただしデフォルトのアクションで十分です)およびOpera(何も機能しない)では機能しません。

于 2010-10-12T11:53:04.783 に答える