如果选中复选框,如何进行AUI验证?

时间:2017-09-15 14:07:44

标签: liferay liferay-aui alloy-ui

我有一个aui形式的字段,我只想在选择相应的复选框时需要它,否则它们不是必需的。启用此复选框后,我将使用<aui:script>启用这些输入字段,然后才能使用aui验证。

我试图在脚本中隐藏<aui:validator>依赖条件。

如果在aui中选中了我的复选框,我该如何启用验证?

<aui:form action="" method="post">
<aui:input type="checkbox" name="employeeId" id="employeeId"></aui:input>

<div id="employeeDetails">
    <aui:input type="text" name="name" id="employeeId2">
        <%
            if (true) { //default i kept true how to check this condition on check box basic
        %>
        <aui:validator name="required"'  />
        <%
            }
        %>
    </aui:input>
    <aui:input type="text" name="email" id="employeeId3">
        <%
            if (true) {
        %>
        <aui:validator name="required" />
        <%
            }
        %>

    </aui:input>
</div>
<aui:button-row>
    <aui:button type="submit" />
</aui:button-row>
</aui:form>

<aui:script>
AUI().use('event', 'node', function(A) {
   A.one('#employeeDetails').hide(); // to hide div by default

   var buttonObject = A.all('input[type=checkbox]');
   buttonObject.on('click', function(event) {
     if (A.one("#<portlet:namespace/>employeeId").attr('checked')) { 
        A.one('#employeeDetails').show(); //for checked condition
     } else {
        A.one('#employeeDetails').hide(); // for non checked condition
     } 
   });
});
</aui:script>

参考图片:

启用复选框之前

[Before enabling the check box]

启用复选框:

[check box enabled]

1 个答案:

答案 0 :(得分:4)

这个示例if(true)困扰着我 - 它在JSP上评估了服务器端并且没有任何效果,因为true总是{ {1}}。

但是,您的问题已在Liferay's documentation中详细记录:寻找&#34;有条件地要求字段&#34;

  

有时您会想要根据值来验证字段   另一个领域。您可以通过检查a中的条件来执行此操作   所需验证者身体内的JavaScript函数。

     

以下是一个示例配置:

true