Primefaces 5呼叫改变事件在IE8 programmaticaly
我在代码<input type="file" class="ui-fileupload-choose>
上传的文件。此input
-Tag自动从PrimeFaces组件<p:fileUpload>
生成。 我想隐藏input
元素的按钮,并使用我自己的样式化按钮进行上传。
所以这是风格化的按钮。
<input type="button" onclick="$('#formId\\:uploaderId .ui-fileupload-choose input').click();">
这确实功能FF,Chrome和IE9,10,11 但在IE8什么也没有发生在上载阶段。显示“选择文件”对话框。生成的input file
具有JQuery更改事件。我相信这个事件不会被调用,因为如果我点击input file
按钮,它会在所有浏览器中进行。
我已经试过
<input type="button" onclick="$('#formId\\:uploaderId .ui-fileupload-choose input').click(); #formId\\:uploaderId ui-fileupload-choose input').trigger('change');">
,但它并不能帮助。
而且我已经试过
$('#formId\\:uploaderId .ui-fileupload-choose input').change(function() {
// Cause the change() event
// to be fired in IE8 et. al.
//some checks against recursion.
alert("I'm in change");
$('#formId\\:uploaderId .ui-fileupload-choose input').change();
});
在变化的函数被调用,但它也没有帮助。
在这种情况下我该怎么办?
神奇的是,我现在正在我的一个项目中处理同样的问题。 看来,这是一个安全问题,输入文件的点击/改变是由javascript onclick手动触发的。启动上传的过程正在进行,但请求永远不会被发送!如果我找到一些优雅的解决方案,我会更新这个问题!目前我正在检查浏览器版本,如果它是IE,我正在改变上传的方式。 – 2014-11-05 08:54:06
@HatemAlimam酷,谢谢你的评论。如果没有简单的解决方案来解决这个问题,我将使用'
'而不做任何更改。祝你好运 ! – Tony 2014-11-05 08:59:48
我刚刚发现了另一个[问题](http:// stackoverflow。com/questions/12556988/ie-doesnt-allow-to-upload-the-file-if-it-not-keybord-click-for-input-type-f)关于该主题,我认为我是对的一个安全的东西IE:( – 2014-11-05 09:01:10