2013-09-23 68 views
0

我點擊一個按鈕時彈出一個對話框窗體,這個窗體用來創建一個只有一個字段的新學校記錄。 我對這個唯一的輸入字段添加了必需的驗證,並且一切正常,但我不知道該怎麼做的唯一的事情是,當我單擊提交時,無論表單是否生效,對話框都將通過以下代碼解僱:JSF驗證對話框形式

initDataTable(); 
    // Dismiss the dialog 
    $('#dialogNewSchool').dialog('close'); 

對話框關閉之前,我應該把表單驗證檢查(類似從驗證類返回),我怎麼可以在JavaScript中做到這一點?我正在使用JSF 2.1實現。

順便說一句,我不想​​使用客戶端驗證,因爲不僅需要此字段所需的驗證。

謝謝。 ;)

+0

發佈您嘗試過的代碼。 –

+0

[提交後出現驗證錯誤時保留p:對話框]的可能重複(http://stackoverflow.com/questions/9195756/keep-pdialog-up-when-a-validation-error-occurs-after-submit ) – BalusC

回答

0

如果我有你的權利,你想保持對話框打開的情況下的驗證錯誤?

比你可以在你的頁面

<h:panelGroup id="global_flag_validation_failed_render"> 
    <h:outputText id="global_flag_validation_failed" value="true" rendered="#{facesContext.validationFailed}"/> 
</h:panelGroup> 

而且在點擊您的提交按鈕呈現這樣的上述塊地方添加以下代碼:

<f:ajax onevent="closeMyDialogIfAllOk" render="@form global_flag_validation_failed_render"></f:ajax> 

,並在您的JS代碼

function closeMyDialogIfAllOk(data){ 
    if(data.status === 'success') { 
     if($("#global_flag_validation_failed").length === 0){ 
      $("#dialog_id").dialog("close"); 
     } 
    } 
} 

欲瞭解更多信息請參閱看看這裏:How to find indication of a Validation error (required=「true」) while doing ajax command