我一直在使用明显的:
/*Place the file into the editing image */
$j("#file").change(function(e) {
type="upload";
submitChanges("preview");
});
submitChanges 函数基本上通过“点击”提交(隐藏)来提交表单。使用 AJAX 表单插件监控表单。提交工作正常,与问题无关,但在这里只是为了给你一个背景。
使用 Firefox 和 IE8 一切正常。如果用户选择一个文件 AJAX 就可以了。用户可以再次单击浏览并选择新文件或相同文件,更改将再次触发。
问题在于基于 Webkit 的浏览器(Chrome 和 Safari),仅当用户选择的文件与之前选择的文件不同时才会触发更改事件。这些浏览器会逐字解释变化。由于选择了相同的文件,因此该框未更改,因此未触发该事件。我想模仿 IE 和 Firefox 的功能,因为无论选择什么文件都会触发此事件。
有什么解决办法吗?
根据要求的HTML:
<table border="0" style="width:100%">
<tbody>
<tr>
<td style="width:50%"><input id="preview" type="button" value="Preview"/></td>
<td><input type="button" id="save" value="Save" /></td>
</tr>
<tr>
<td style="width:50%">Upload (JPEG Only):</td>
<td><form id="uploadForm" class="upload" method="POST" enctype="multipart/form-data" action="/path/to/file.php?action=preview"><input type="file" name="file" id="file" /><input type="submit" id="uploadSubmit" style="display:none" /><div id="hiddenFields"><!-- JQUERY --></div></form></td>
</tr>
</tbody>
</table>