如何使用jquery在liferay 6.1中验证表单

时间:2013-01-02 09:49:21

标签: jquery validation liferay-6

我有一个带有Booktitle的作者,作者。我需要验证这两个字段,如果其中任何一个是空的,它应该显示消息,因为字段是必需的。我怎么能实现这一点。我在Google搜索了这个,并修改了如下代码。

<script>
    $(document).ready(function() {
        $("#_fm").validate();
        var element = document.getElementById("_bookTitle");
        element.className = element.className + " required";
        element = document.getElementById("_author");
        element.className = element.className + " required";
    });
</script>
<aui:form name="fm" method="POST" action="<%=updateBookURL.toString()%>">
    <aui:input name="bookTitle" label="Book Title" />
    <aui:input name="author" />
    <aui:button type="submit" value="Save" />
</aui:form>

并且portlet.xml是:

<portlet>
        <portlet-name>libraryportlet</portlet-name>
        <icon>/icon.png</icon>
        <instanceable>false</instanceable>
        <header-portlet-css>/css/main.css</header-portlet-css>
        <header-portlet-javascript>https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js</header-portlet-javascript>
        <header-portlet-javascript>https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.15/jquery-ui.min.js</header-portlet-javascript>
        <header-portlet-javascript>
            http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js
        </header-portlet-javascript>
        <footer-portlet-javascript>
            /js/main.js
        </footer-portlet-javascript>

        <css-class-wrapper>libraryportlet-portlet</css-class-wrapper>
    </portlet>

但没有成功。我做错了。任何人都可以告诉我。谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用liferay自己的Alloy验证器来验证表单,这样就无需使用jquery和jquery验证表单验证。

首先,您需要将验证器类导入到jsp:

<%@ page import="com.liferay.portal.kernel.util.Validator" %>

然后您可以继续为每个输入字段定义规则:

<aui:form name="fm" method="POST" action="<%=updateBookURL.toString()%>">
    <aui:input name="bookTitle" label="Book Title">
        <aui:validator name="required"  />
    </aui:input>

    <aui:input name="author">
        <aui:validator name="required"  />
    </aui:input>

    <aui:button type="submit" value="Save" />
</aui:form>

如果任何字段为空,这将阻止提交表单。正如Bondye所说,您可能还想进行一些服务器端验证,因为Alloy运行在Javascript之上,用户可以轻松禁用,因此在提交空表单时会将您的应用程序暴露给某些未处理的异常。