0

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 キーを押した後にフィールド値を記憶しないため、このブラウザーでは問題は発生しません。

編集:間違いを修正

4

0 に答える 0