我正在使用jquery form plugin来处理上传文件,
这是我的表格,
<form action="upload.php" method="post" enctype="multipart/form-data" id="myForm">
<input type="file" multiple="multiple" name="file[]" />
<input type="submit" name="upload" value="Submit"/>
</form>
<div id="output"></div>
jquery,
$('#myForm').submit(function() {
$(this).ajaxSubmit({
target: '#output'
});
return false;
});
这个想法的后退是你必须在上传文件之前点击两次 - 你必须点击浏览文件,然后点击提交按钮。
如何将其减少为一次点击?理想情况下,当您从桌面选择文件并在浏览窗口/弹出窗口中单击“确定”时,我希望它自动触发提交。
有可能吗?
另一个注意事项:为什么它不适用于Chrome,IE和Safari(它只适用于Firefox和Opera) - 表单将在这些浏览器上提交,但我已将submit()
设置为{{ 1}}?
答案 0 :(得分:0)
您需要在处理文件的输入上设置一个事件处理程序,并将其链接到“已更改”的事件处理程序。这样,当用户更改文件名时,您调用的函数可以查看文件是否存在,然后自动提交表单。
阻止发生默认事件的“Jquery方式”是event.preventDefault()
。这可能等于return false
但是在使用它时我从未遇到过问题。另一件事可能是你在那些阻止返回false的浏览器上遇到脚本错误。您可以通过将事件处理程序更改为以下内容来执行此操作
function(event) {
event.preventDefault();
// Do stuff here
}
答案 1 :(得分:0)
$('input[type=file]').change(function() {
var vals = $(this).val(),
val = vals.length ? vals.split('\\').pop() : '';
alert("value changed submit the form here");
$('input[type=text]').val(val);
});