1

我的目标是,当我们按下命令按钮时,它需要执行onclick调用另一个单击按钮来上传文件的方法。上传文件完成后,需要执行action方法。但是目前,虽然它正在调用该函数,但它正在异步执行 action 方法,甚至在文件上传完成之前完成。我们如何使它同步,只有当onclick方法完成时,它才需要执行 action 方法?

<p:commandButton styleClass="shareButton" ajax="true"
                 action="#{topicController.createTopic}"
                 onclick='javascript:setTopicDetails();uploadFile();'
                 value="Share"
                 oncomplete="javascript:complTopic(xhr, status,args);"
                 partialSubmit="true">
</p:commandButton>

function uploadFile(){
    $('.progress').show();
    $('button.start[type=button]').click();
}
4

1 回答 1

0

尝试类似下面代码 e.preventDefault() 的回调函数;//防止默认点击动作,上传完成后手动触发点击事件。

function uploadFile(){
e.preventDefault(); 
$('#upload').load('ajax/test.html', function() {
  alert('upLoad completed.');

//call functions which need to be called after upload completed..
setTopicDetail();
 $('.progress').show();
    $('button.start[type=button]').click();

// click commandlink here.
$('commandlink').click();
});

}
于 2012-09-23T07:21:49.303 回答