jQuery MiniUI

 找回密码
 立即注册
查看: 7725|回复: 16
打印 上一主题 下一主题

隐藏ajax文件上传框 [复制链接]

跳转到指定楼层
楼主
发表于 2018-8-27 10:07:39 |只看该作者 |倒序浏览
class="mini-htmlfile" 设置了onValueChanged="a()"然后隐藏了这个控件
在上传按钮中写了一个$(".mini-htmlfile .mini-htmlfile-file").click();
然后在选择文件以后  也就是a(){}中  调用ajaxFileUpload()上传文件

此法目的是为了简化用户操作。直接点击上传按钮便可以选择文件并上传了

问题
此方法在谷歌中可以正常使用,没有问题,但是在ie中,没有上传文件
如果按照原来的写法,先点击文件选择框选择文件,然后点击上传,ie是可以正常使用的,但是会有个文件选择框,
有什么办法去掉这个文件选择框并且在ie中能正常使用

Rank: 8Rank: 8

沙发
发表于 2018-8-27 10:32:30 |只看该作者
贴代码,你是如何控制隐藏的。

板凳
发表于 2018-8-27 12:41:48 |只看该作者
本帖最后由 沈大爷 于 2018-8-27 12:44 编辑
felt 发表于 2018-8-27 10:32
贴代码,你是如何控制隐藏的。

流程: 点击上传按钮后打开文件选择框,选中文件后点击确定,此时触发改变事件,然后调用ajax文件上传


上传按钮和控件
<input id="file1" class="mini-htmlfile" name="Fdata" />
<a class="mini-button tz-button2" style="width: 90px">上传</a>
隐藏控件
mini.get("file1").setVisible(false);

              //打开文件选择框
                function openFlieSelect() {
                        var row = grid.getSelected();
                        if (!row) {
                                alert("请选中一条记录");
                                return;
                        }
                        $(".mini-htmlfile .mini-htmlfile-file").click();
                }

                //文件上传
                function startUpload() {
                        var filePath = mini.get("file1").getValue();
                        var inputFile = $("#file1 > input:file")[0];
                        $.ajaxFileUpload({
                                url : '',  //url是正确的,这里就不放了
                                fileElementId : inputFile,
                                dataType : 'text',
                                cache : false,
                                success : function(data) {
                                        alert(data.msg);
                                },
                                error : function(data, status, e) //服务器响应失败处理函数
                                {
                                        alert(e);
                                },
                                complete : function() {
                                        var jq = $("#file1 > input:file");
                                        jq.before(inputFile);
                                        jq.remove();
                                }

                        });

Rank: 8Rank: 8

地板
发表于 2018-8-27 13:13:13 |只看该作者
沈大爷 发表于 2018-8-27 12:41
流程: 点击上传按钮后打开文件选择框,选中文件后点击确定,此时触发改变事件,然后调用ajax文件上传

本地测试设置visible=“false”后,不管ie还是其他浏览器,选择之后都是正常隐藏的,没发现什么文件选择框。
如果你那确定有问题,请基于我们示例做一个简单的例子来重现

5#
发表于 2018-8-27 13:26:49 |只看该作者
本帖最后由 沈大爷 于 2018-8-27 13:32 编辑
felt 发表于 2018-8-27 13:13
本地测试设置visible=“false”后,不管ie还是其他浏览器,选择之后都是正常隐藏的,没发现什么文件选择 ...
可能我问题没有描述清楚 在这种写法 在ie中没有去访问后台,没有上传文件
在谷歌中测试没有问题

Rank: 8Rank: 8

6#
发表于 2018-8-27 14:39:34 |只看该作者
沈大爷 发表于 2018-8-27 13:26
可能我问题没有描述清楚 在这种写法 在ie中没有去访问后台,没有上传文件
在谷歌中测试没有问题
...

本地测试ie下未发现你说的问题。请提供示例重现问题。

7#
发表于 2018-8-27 14:41:34 |只看该作者
felt 发表于 2018-8-27 14:39
本地测试ie下未发现你说的问题。请提供示例重现问题。

请问通过这种方式,你的本地能提交文件到服务器吗

8#
发表于 2018-8-27 14:44:36 |只看该作者
沈大爷 发表于 2018-8-27 14:41
请问通过这种方式,你的本地能提交文件到服务器吗

我在后台文件接收的地方打了断点,ie执行没有进去,同样的页面谷歌就进去了
就是这三个步骤,点击按钮,打开文件选择框,然后file的改变事件去调用ajax 来实现文件上传
在页面加载的时候隐藏了file这个控件

9#
发表于 2018-8-27 14:46:56 |只看该作者
felt 发表于 2018-8-27 14:39
本地测试ie下未发现你说的问题。请提供示例重现问题。

代码就是之前发的  ,只是删除了url

Rank: 8Rank: 8

10#
发表于 2018-8-27 14:55:59 |只看该作者
沈大爷 发表于 2018-8-27 14:46
代码就是之前发的  ,只是删除了url

我们本地是正常上传的。
我说的例子是基于我们示例修改,能直接打开运行重现你说的问题的例子。不是一段段代码。

Archiver|普加软件

GMT+8, 2025-7-9 01:17 , Processed in 1.029690 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部