2017-09-27 66 views
0

我嘗試在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

回答

0

你可以做一兩件事,

<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"); 
});