环境 :jQuery EasyUI 1.4.1
问题如图:
经过反复测试,在控件的demo里直接使用,可以正常显示路径,在IE11 ,firefox任意版本,chrome任意版本都可以(firefox只显示文件名,故也算作正确)
但是IE9 总是无法正确显示路径,路径如图:
百度了解决方法:
//文件输入框,解决C:\\fakepath\\的错误路径问题
$('#xx').filebox({
onChange:function(newValue, oldValue){
$('#xx').filebox('setValue',newValue.replace("C:\\fakepath\\", ""));
}
});
但是我们测试部很多IE9,情况不一;有点解决了,有的出现windows的弹出框:
我哭了。。。
最终解决方案: 查了路径错误的根本原因是浏览器的安全机制导致的,针对Ie9如下设置即可:
改成启用即可。
【update 2019/01/17】 目前找个不错的解决方案,这个方案无需用户做出特殊的浏览器设置。
<input class="easyui-textbox" name="logoName" data-options="readonly:true,prompt:'我是只读的,只用于显示'" id="xxx" style="" />
<input class="easyui-filebox" style="" name="file" data-options="prompt:'我无法被看到,但我是真正提交的',
required:false,missingMessage:'图片大小要32*32像素,格式/.png' ,buttonText:'更换',width:34,
onChange:function(newValue, oldValue){
var v = $(this).filebox('getValue');
alert(v);
alert(newValue);
if(newValue){
//去掉路径,留下文件名称
var fileName=newValue.substr(newValue.lastIndexOf('\\')+1);
$('#xxx').textbox('setValue',fileName);
}
}">
效果如下: