0

我正在使用jquery 表单插件来处理上传文件,

这是我的表格

    <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()return false?

4

2 回答 2

0

您将需要在处理文件的输入上设置一个事件处理程序,并将其链接到“已更改”事件处理程序。这样,当用户更改文件名时,您调用的函数可以查看文件是否存在,然后自动提交表单。

防止默认事件发生的“Jquery 方式”是event.preventDefault(). 这可能等于return false使用它时我从未遇到过问题。另一件事可能是您在那些阻止返回 false 的浏览器上遇到脚本错误。您可以通过将事件处理程序更改为如下所示来执行此操作

    function(event)  {
       event.preventDefault();
       // Do stuff here
    }
于 2011-08-20T12:40:51.417 回答
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);
});

http://jsfiddle.net/CSvjw/82/

于 2011-08-20T12:51:24.703 回答