在h:commandButton中实际操作后的OnClick操作

时间:2013-10-18 19:44:19

标签: javascript jquery jsf

我有一个市场应用程序,在付款页面中,有一个h:form在字段上有一些验证。我有h:commandButton提交表单并在后端执行操作。

代码是这样的:

<div class="form-actions">
<h:commandButton onclick="setTimeout($('#adios').modal('show'),50)" 
value="Pay!" action="#{basketManager.pay(accountManager.currentAccount.username)}"
class="btn btn-primary btn-lg"/> 
</div>

modal只会显示一条消息。但我希望在h:form验证得到正确满足后执行此操作,甚至更好,在action内部h:commandButton之后执行此操作(顺便说一下,它不起作用,它只能正常工作)如果我删除了onClick

有什么想法吗?

编辑:感谢@SRy的建议,但仍有问题。这是我现在的代码:

<div class="form-actions">
<p:commandButton oncomplete="$('#adios').modal('show')" 
value="Pay!" action="#{basketManager.pay(accountManager.currentAccount.username)}"
styleClass="btn btn-primary btn-lg"/> 
</div>

1 个答案:

答案 0 :(得分:1)

你可以使用Primefaces命令按钮p:commandButton来轻松执行,或者你可以做这样的事情

 <h:commandButton 
    value="Pay!" action="#{basketManager.pay(accountManager.currentAccount.username)}"
    class="btn btn-primary btn-lg">
     <f:ajax execute="@this" render="@form" onevent=showdlg();/>
   </h:commandButton>

的JavaScript

function showdlg(data){
       if(data.status=='success'){
          setTimeout($('#adios').modal('show'),50);
          }
      }