Tapestry 5旁路验证



我想问一下tapestry 5中的旁路验证

在我的表单中,我有一些字段需要验证。我有两个提交按钮。如果我点击对保存对象做一些验证。另一个必须不验证表单或绕过Ajax(使用zone)添加到细节对象的验证

谢谢B4的

虽然我没有通过在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" />

查看提交的组件引用。它说"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();
    }
}

尝试在客户端使用javascript禁用输入字段。这对我很有效。正如joostschouten所说,您仍然需要绕过服务器端验证。

最新更新