当字段验证失败时,避免使用AJAX onsuccess调用

时间:2015-01-13 16:20:05

标签: javascript ajax validation jsf primefaces

我想在我的网站上建立一个向导。像每个向导一样,它有步骤。对于每一步,您都可以前进或后退前一步。我在使用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。

1 个答案:

答案 0 :(得分:0)

要点击onSuccess回调,服务器必须使用200范围内的状态代码进行响应。如果验证有问题,请确保响应代码在400范围内。这样就不会调用onSuccess函数。