2011-09-09 60 views
1

我想問一下掛毯旁路驗證5掛毯5 ByPass驗證

在我的表單中我有一些字段需要驗證。我有兩個提交按鈕。一個如果我點擊做保存對象的驗證。和其他不能確認的形式或繞過驗證通過阿賈克斯(使用區域)

感謝的B4添加到明細對象

+0

你想繞過客戶端驗證,服務器端驗證或兩者? – joostschouten

+0

其實我看客戶端驗證。但是,如果你有解決方案,我也喜歡知道 – nathan21

回答

2

雖然我沒有通過在t:form設置t:clientvalidation="false"使用客戶端驗證,我相信你可以用一個取消按鈕如下繞過它旁邊的提交按鈕:

<input t:type="submit" t:mode="cancel" value="Cancel" t:id="cancel" /> 
<input t:type="submit" value="Submit" t:id="submit" /> 

看一看的component reference for submit。在那裏它聲明「SubmitMode#CANCEL表示應該省略客戶端驗證(雖然服務器端驗證仍然發生)」。所以你仍然需要停止服務器端驗證。您可以這樣做:

private boolean cancelCalled; 

void onSelectedFromSubmit() { 
    cancelCalled = false; 
}  

void onSelectedFromCancel() { 
    cancelCalled = true; 
} 

@OnEvent(component = "theIdOfYourForm", value = EventConstants.VALIDATE) 
private void validateForm() { 
    if(cancelCalled) { 
     newContactForm.clearErrors(); 
    } 
} 
0

嘗試在客戶端使用javascript禁用輸入字段。這個對我有用。正如joostschouten所說,你仍然需要繞過你的服務器端驗證。