Firefox 4 で自作の jquery ウィジェットに問題があります (他のバージョンの Firefox はテストしていません)。
私のウィジェットの目的は、「ファイル」タイプの入力の後に 2 つの入力要素を追加することです。したがって、ウィジェットと私の HTML コードへの呼び出しは次のとおりです。
<script>
$(function() {
$('#first_file, #second_file').customFileInput();
});
</script>
<div>
<input type="file" id="first_file" />
</div>
<br /><br />
<div>
<input type="file" id="second_file" />
</div>
ウィジェットを無効にして 2 つのファイルを選択し、F5 でページを更新すると、ブラウザは両方のファイルを記憶します。
さて、ここに私のウィジェットコードがあります:
(function( $, undefined ) {
$.widget('ui.customFileInput', {
_create: function() {
var self = this;
self.fileInput = self.element;
var parent = self.fileInput.parent();
self.textInput = $('<input type="text" />');
self.browseInput = $('<input type="button" value="Do it" />');
parent.append(self.textInput);
parent.append(self.browseInput);
}
});
$.extend($.ui.customFileInput, {
version: "1.0",
});
})( jQuery );
ウィジェットがアクティブな状態で 2 つのファイルを選択して F5 キーを押すと、最初のファイルのみが記憶されます。問題の原因は「append」メソッドにあるようです。しかし、insertAfter、insertBefore、add、wrap などの方法も試しましたが、常に同じ問題があります。
誰かがこれを解決する方法を知っていますか?
注意: IE 9 で試してみましたが、このひどいブラウザーは F5 キーを押した後にフィールド値を記憶しないため、このブラウザーでは問題は発生しません。
編集:間違いを修正