2013-12-16 43 views
0

我有一個表單,當我點擊單選按鈕時,它會使三個文本框的值與控制器進行ajax調用。f:ajax不能與執行和偵聽器屬性一起工作

下面的代碼在控制器發出ajax調用時工作正常。

<h:selectOneRadio id="mobilePhoneId" styleClass="addradio" value="#{Controller.accountContactPageBean.mobilePhoneSelected}" onclick="onClickPreferredPhone(this)"> 
    <f:selectItem itemValue ="Mobile" itemLabel="Preferred" /> 
    <f:ajax render="homePhone officePhone mobilePhone" listener="#{Controller.resetPreferredLine('Mobile')}"/> 
</h:selectOneRadio> 

要在Ajax調用我包括執行有沒有到控制器plz幫助取得電話後的文本框中發送的值。

下面是執行時的樣子。

<h:selectOneRadio id="mobilePhoneId" styleClass="addradio" value="#{Controller.accountContactPageBean.mobilePhoneSelected}" onclick="onClickPreferredPhone(this)"> 
    <f:selectItem itemValue ="Mobile" itemLabel="Preferred" /> 
    <f:ajax render="homePhone officePhone mobilePhone" execute="homePhone officePhone mobilePhone" listener="#{Controller.resetPreferredLine('Mobile')}"/> 
</h:selectOneRadio> 
+0

您正在運行什麼JSF版本以及您在什麼瀏覽器中觀察過這些?您是否嘗試過其他瀏覽器? – kolossus

回答

2

對於非常複雜的驗證,最好從控制器驗證它。如果這些值在控制器throw中匹配,如下所示。

if(true){ 
      FacesContext facesContext = FacesContext.getCurrentInstance(); 
      String mode = facesContext.getExternalContext().getRequestParameterMap().get("accountSaveType"); 
      FacesMessage message = new FacesMessage(); 
      message.setSummary("You error message"); 
      message.setDetail("You error message"); 
      facesContext.addMessage("your component ID", message); 
      return path; //same page to throw the error eg. "/home/index"    
     } 
0

我不知道,如果你的第一個代碼的工作,當您使用監聽這個屬性必須指向一個方法下一個合同:public void MethodName(AjaxBehaviourEvent event)但方式,也許在執行你有一個無效的ID你也可以以這種方式發送表單中的所有值:execute =「@ form」或execute =「@ all」。

相關問題