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