Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 单击commandButton时显示模态(可选)_Jquery_Jsf_Primefaces_Jsf 2 - Fatal编程技术网

Jquery 单击commandButton时显示模态(可选)

Jquery 单击commandButton时显示模态(可选),jquery,jsf,primefaces,jsf-2,Jquery,Jsf,Primefaces,Jsf 2,我有一个问题,我需要根据输入字段的值显示模式,因此我在输入字段中写入一些值,单击保存按钮,根据我应该运行db查询的值,如果结果存在,则显示模式,否则不显示。最好的方法是什么 问题是我需要有单独的onclick和oncomplete事件 <p:commandButton id="save_button" value="Save" update="@([id*=modalId]) @form" onclick="jQuery('#modalId').show();" acti

我有一个问题,我需要根据输入字段的值显示模式,因此我在输入字段中写入一些值,单击保存按钮,根据我应该运行db查询的值,如果结果存在,则显示模式,否则不显示。最好的方法是什么

问题是我需要有单独的onclick和oncomplete事件

 <p:commandButton id="save_button"
  value="Save"
  update="@([id*=modalId]) @form"
  onclick="jQuery('#modalId').show();"
  action="#{cc.attrs.saveAction}">
  </p:commandButton>


   <p:inputNumber required="true"
   value="#{bean.number}">
   </p:inputNumber>

您可以在支持bean中设置db结果,然后将.show()调用更改为oncomplete属性,这样您就可以根据查询结果有条件地显示模式面板

public class BackingBean{
    private Object dbResult;

    public Object getDbResut(){ return dbResult; }

    public void executeDbQuery(){
          dbResult = yourDbApi.doSomeQuery();
    }
}


<p:commandButton id="save_button"
  value="Save"
  update="@([id*=modalId]) @form"
  actionListener="#{bean.executeDbQuery}">
  action="#{cc.attrs.saveAction}"
  ocomplete="#{not empty bean.dbResult ? 'jQuery('#modalId').show();' : ''}">
  </p:commandButton>


   <p:inputNumber required="true"
   value="#{bean.number}">
   </p:inputNumber>
公共类BackingBean{
私有对象结果;
公共对象getDBResult(){return dbResult;}
public void executeDbQuery(){
dbResult=yourDbApi.doSomeQuery();
}
}
action=“#{cc.attrs.saveAction}”
ocomplete=“#{notempty bean.dbResult?”jQuery('#modalId').show();':''}>

actionListener
action
之前执行,因此可以保证在您的操作调用之后,oncomplete将获得正确的
bean。dbResult

尝试阅读以下内容:可以使用RequestContext.addCallbackParam从JSFbean向oncomplete回调传递一个值。这样,我的问题就迎刃而解了。