如何在js中使用liferay验证器提交?

问题描述:

我尝试在Liferay 6.2上使用带有JavaScript的Liferay验证器。如何在js中使用liferay验证器提交?

有一个问题是我的按钮必须使用提交表单的onlick按钮,但是当提交这种方式时,表单验证器不会触发防止提交。它只是在我使用按钮类型提交时触发。

这里mycode的例子:

<portlet:actionURL name="updateURL" var="submitURL"/> 

<aui:form name="fm2" id="fm2" action="<%=submitURL %>" method="post"> 
    <aui:input name="userName" value='' label="User Name"></aui:input> 
    <aui:input name="password" value='' label="Password"></aui:input> 

    <aui:button type="button" name="logIn" id="logIn" value="Login" /> 
</aui:form> 
<aui:script> 
AUI().use('aui-base','liferay-form','aui-form-validator',function(A){ 

    A.one("#<portlet:namespace/>logIn").on("click",function(){ 
     submitForm(document.<portlet:namespace />fm2); 
    }); 

    Liferay.Form.register(
     { 
      id: '<portlet:namespace/>fm2', 
      fieldRules: [ 
          { 
           body: '', 
           custom: false, 
           errorMessage: '', 
           fieldName: '<portlet:namespace/>password', 
           validatorName: 'required' 
          }, 

          { 
           body: '', 
           custom: false, 
           errorMessage: '', 
           fieldName: '<portlet:namespace/>userName', 
           validatorName: 'required' 
          } 
       ] 

     }); 
    }); 
</aui:script> 

我能做些什么?

如何liferay可以防止事件与标签提交,但不与js?

这里是AUIFormValidator-portlet演示。

https://drive.google.com/open?id=0B27gY2oYFX7QTTFFdXc3TnZ4d1k

你可以做一两件事,

<aui:form name="fm2" id="fm2" action="javascript:void(0)" method="post"> 

它会阻止你提交事件并触发AUI表单验证。

现在在onClick函数中,您可以指定您的提交网址来形成如下所示的操作。

$("#<portlet:namespace/>logIn").on("click",function(){ 
    var url = '${submitURL}'; 
    $('#<portlet:namespace />fm2').attr('action', url); 
    $('#<portlet:namespace />fm2').trigger("submit"); 
});