我对 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,则只记住第一个文件。问题的根源似乎是“追加”方法。但是我也试过insertAfter、insertBefore、add、wrap等方法,但总是出现同样的问题。
有人知道如何解决这个问题吗?
注意:我在 IE 9 上尝试过,但是这个糟糕的浏览器在按下 F5 后确实会记住字段值,所以这个问题不适用于这个浏览器。
编辑:错误更正