我有一个文件上传的xhtml页面:
<p:fileUpload fileUploadListener="#{ContentRepositoryExplorerBean.upload}"
update="formId" dragDropSupport="true" multiple="true"/>
我需要为用户做出确认对话框,例如他按&#34;退出&#34; 我所做的是:
<script>
var flag = false;
function setFlag(v) {
flag = v;
}
function getWarningMessage() {
if(flag == true) {
window.onbeforeunload = function() {
return 'Please do not leave this page until upload is done';
}
}
}
$('#logout').click(function() {
getWarningMessage();
});
</script>
并添加到fileUpload onstart和oncomplete
<p:fileUpload fileUploadListener="#{ContentRepositoryExplorerBean.upload}"
update="formId" dragDropSupport="true" multiple="true"
onstart="setFlag(true)" oncomplete="setFlag(false)"/>
但是当我选择留在页面上时,我的上传不会显示在列表中。任何想法都值得赞赏
答案 0 :(得分:0)
您可以在上传过程中显示对话框。
创建对话框(在主窗体之外):
<p:dialog widgetVar="statusDialog" modal="true" draggable="false" header="Loading please wait.........."
closable="false" resizable="false" showHeader="false">
<p:outputLabel value="Uploading file..."></p:outputLabel>
</p:dialog>
将您的p:fileUpload更改为
<p:fileUpload fileUploadListener="#{ContentRepositoryExplorerBean.upload}"
update="formId" dragDropSupport="true" multiple="true"
onstart="PF('statusDialog').show();"
oncomplete="PF('statusDialog').hide();"/>
现在,如果用户上传,则会显示带有短信的弹出窗口。
答案 1 :(得分:0)
通过更改脚本来修复此问题:
<script type="text/javascript" >
var flag = false;
function setFlag(v) {
flag = v;
}
$(document).ready(function() {
var onclickFunc = new Function($('#logout').attr('onclick'));
$('#logout').on("click", function(event){
if(flag == true) {
event.stopImmediatePropagation();
alert("Please do not leave this page until upload is done");
}
}).click(onclickFunc).removeAttr('onclick');
})
</script>