Как проверить объект ‹aui:validator› перед отправкой

Я написал следующий код в aui, и я использую валидаторы aui для полей, но здесь мое требование заключается в том, чтобы при отправке, если все проверки прошли успешно, я хочу вызвать одну функцию javascript. Как проверить, есть ли ошибки в моей функции javascript.

    <aui:form>
    <aui:fieldset id="inputs">
    <aui:input name="staticInput" label="Static Input" value="" size="40" showRequiredLabel="false">
    <aui:validator name="required"/>
    </aui:input>
    </aui:fieldset>

    <aui:button-row>
    <aui:button value="Add Field" cssClass="addField"/>
    <aui:button value="Save" type="submit"/>
    </aui:button-row>
    </aui:form>
<scipt>
function openEmailClient(){
//I want to call this function if all the validations are success
}
</script>

person user3663712    schedule 22.04.2015    source источник


Ответы (2)


Вероятно, вам нужно создать собственный валидатор, чтобы выполнить функцию javascript при правильной проверке:

<aui:input name="staticInput" label="Static Input" value="" size="40" showRequiredLabel="false">

    <aui:validator  name="custom"  errorMessage="please-fill-out-all-required-fields">
        function (val, fieldNode, ruleValue) {
            if (val.length > 0) {
                //open e-mail client
                return true;
            }
            return false;
       }
    </aui:validator>

</aui:input>
person Ana Mendoza    schedule 22.04.2015
comment
Пожалуйста, не могли бы вы уточнить немного. Где именно вы проверяете, нет ошибок проверки. Для этого вы говорите, что необходимо создать новое пользовательское правило - person user3663712; 22.04.2015
comment
Этот валидатор не проверяет отсутствие ошибок проверки, он позволяет реализовать вашу собственную проверку и, таким образом, выполнять ваш собственный javascript, если ошибки нет. В коде, который я разместил, вы должны проверить, что входной staticInput имеет значение с условием val.length › 0 перед выполнением вашей функции. - person Ana Mendoza; 22.04.2015

Пожалуйста, обратитесь к edit_entry.jsp в источниках liferay для примера портлета закладок.

В приведенном ниже коде liferay проверяет ошибки проверки и вызывает метод openEmailClient, только если ошибок проверки нет.

    <aui:form action="<%= urlToSubmit %>" method="post" name="fm" onSubmit='<%= "event.preventDefault(); " + renderResponse.getNamespace() + "openEmailClient();" %>'>
    <aui:fieldset id="inputs">
    <aui:input name="staticInput" label="Static Input" value="" size="40" showRequiredLabel="false">
    <aui:validator name="required"/>
    </aui:input>
    </aui:fieldset>

    <aui:button-row>
    <aui:button value="Add Field" cssClass="addField"/>
    <aui:button value="Save" type="submit"/>
    </aui:button-row>
    </aui:form>
<scipt>
function <portlet:namespace />openEmailClient(){
//I want to call this function if all the validations are success
}
</script>
person Haris    schedule 23.04.2015