我想在我的网站上建立一个向导。像每个向导一样,它有步骤。对于每一步,您都可以前进或后退前一步。我在使用ajax的步骤中处理此导航。每一步都在div上定义。每个步骤都有相同的类,以及表示步骤的唯一ID。因此,对于导航,我定义了以下js函数,其中参数是要显示的步骤的id。
function navigateStepWizard(id) {
//hide all steps
$('.wizard-step').hide();
//show proper step
$(id).fadeIn("fast");
return false;
}
现在,我面临的问题是,在其中一个步骤中,我有几个必须在进入下一步之前进行验证的字段。我已经为表单上的每个字段定义了验证器(Faces Validator Clases),这些字段在尝试进入下一步时正在执行,返回相应的Ok / Error消息。我的问题是,当这些字段不正确时,按钮会转到下一步。首先我尝试使用总是执行js函数的oncomplete
,所以我改为onsuccess
,认为当验证不正常时,ajax回调不会执行{ {1}} js功能,但它确实......这里是我的按钮代码
onsuccess
当字段不正确时,有没有办法避免<p:commandLink id="go-to-step-X"
actionListener="#{myBean.submitWizardInfo}"
onsuccess="navigateStepWizard('#wizard-step-X');"
process="@form, @([id$=wizzard])"
update="@form, @([id$=wizzard])">
Go to next step...
</p:commandLink>
AJAX调用?谢谢你的时间!
P.D:我正在使用JSF 2.0&amp; PrimeFaces 5.0。
答案 0 :(得分:0)
要点击onSuccess回调,服务器必须使用200范围内的状态代码进行响应。如果验证有问题,请确保响应代码在400范围内。这样就不会调用onSuccess函数。