2011-08-02 21 views
2

jQueryの「変更」機能を使用して、HTML入力ファイルフィールドの「onChange」イベントを処理しています。これは意図したとおりに動作し、要素の値が変更されたときにトリガーします。ただし、次のシナリオではありません。jQuery - 入力フィールド変更イベントが正常に動作していません

  1. ユーザーはアップロードするファイルを指定します。このファイルを "file.dat"と呼びます。

  2. jQueryは、後で val関数を使用して、ファイルフィールドの値を ""に設定します。

  3. アップロードするファイルと同じファイル「file.dat」を指定します。

上記のシナリオでは、ステップ3で "onChange"が呼び出されません。ただし、ステップ3のユーザーが別のファイルを指定した場合、実際に呼び出されます。

jQueryのval関数を使用して値を変更していますか?入力ファイルのフィールドをその基本値/デフォルト値にリセットしたい場合は、他にどのような方法がありますか?

答えて

1

セキュリティ上の理由から、JavaScriptはfile入力の値に影響を与えることはできません。値がクリアされたように見えますが、それは実際にはありません。

これを回避するには、フォーム全体をリセットするか、古い要素の代わりに要素を再度作成してDOMに挿入します。

ここでは動作しますexampleです。 changeイベントをバインドするには、jQuery live関数を使用することに注意してください。これは、[クリア]ボタンをクリックするたびに新しい要素をDOMに挿入するために必要です。

0

.val()の代わりに.reset()を試しましたか?

関連する問題