无法使用JQuery Form插件在Internet Explorer中上传文件

时间:2009-09-29 10:56:04

标签: php jquery jquery-plugins

我正在使用JQuery Form Plugin将文件与PHP一起上传,一切都在Firefox中完美运行,但在Internet Explorer中,如果我提交表单,则无法执行任何操作。

我的代码在

下面
<script type="text/javascript">
    <!--
    $(document).ready(function() { 
        var options = {
        target: '#message',
        url:'../includes/ajax/import.php?import=1',
        beforeSubmit: function() {
            $('#uploader').html('<div style="padding-top:10%"><center><img src="../domain/images/ajax-loader.gif" border="0" /></center></div>');
            $('#message').toggle();
        },
        success:  function() {
            $("#message").removeClass("message").addClass("messageResponse");
            $('#message').toggle();
            $('#uploader').html('');
        }
        };
        $('#upload').ajaxForm(options);

    }); 


    //-->
</script>

<div id="message" class="message">
    <form name="upload" id="upload" action="#" method="POST" enctype="multipart/form-data">
        <table cellpadding="4" cellspacing="4" border="0">
            <tr>
                <td colspan="3"><h1>Map Clients <i>(Import CSV File)</i></h1></td>
            </tr>
           <tr>
                <td class="fieldLabel" nowrap>File:</td>
                <td nowrap><input type="file" name="fileToUpload" id="fileToUpload" />&nbsp;*</td>
                <td nowrap id="errorFile" class="error"></td>
            </tr>
            <tr>
                <td nowrap colspan="3"><button id="mapClients">Map Clients</button></td><td nowrap id="errorFile" class="error"></td>
            </tr>   
        <tr>
        <td colspan="3"><input type="hidden" value="1" id="type" name="type" /></td>
        </tr>
        </table>
    </form>
</div>
<div id="uploader"></div>

现在我的问题是,当我点击表单提交按钮时,我无法弄清楚为什么IE 7没有做任何事情

4 个答案:

答案 0 :(得分:2)

我似乎记得遇到同样的问题。试试这个:

$(document).ready(function() { 
    var options = {...
    /*abridged for clarity*/

    $('#upload').submit(function() {
        $(this).ajaxSubmit(options);
        return false;
    });
}); 

答案 1 :(得分:0)

我发现了问题

在我的HTML中我有类似的东西

        <tr>
            <td nowrap colspan="3"><button id="mapClients">Map Clients</button></td><td nowrap id="errorFile" class="error"></td>
        </tr> 

我把它改成了

        <tr>
            <td nowrap colspan="3"><input type="submit" id="mapClients" value="Map Clients" /></td><td nowrap id="errorFile" class="error"></td>
        </tr> 

问题解决了

答案 2 :(得分:0)

我在ie8中遇到了JQuery Form Plugin的问题。启动“ajax表单”的代码片段位于“动态div”中,后者在主页面后更新。把那个电话转移到主页上,ie8正在为我工​​作。

答案 3 :(得分:0)

与IE也有类似的问题。在我的情况下,问题发生了,因为我在beforeSend中禁用了文件输入元素(输入[type = file])(出于美观和可用性的原因)。只有IE在输入元素被禁用时出现问题。