如何使用jquery验证liferay6.1中的表单

如何使用jquery验证liferay6.1中的表单,jquery,validation,liferay-6,Jquery,Validation,Liferay 6,我有一个带有Booktitle、Author的表单。我需要验证这两个字段,比如如果其中任何一个字段为空,则应显示消息,因为字段是必需的。我如何实现这一点。我在google中搜索了此字段,并修改了如下代码 <script> $(document).ready(function() { $("#_fm").validate(); var element = document.getElementById("_bookTitle");

我有一个带有Booktitle、Author的表单。我需要验证这两个字段,比如如果其中任何一个字段为空,则应显示消息,因为字段是必需的。我如何实现这一点。我在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>

$(文档).ready(函数(){
$(“###fm”).validate();
var元素=document.getElementById(“_bookTitle”);
element.className=element.className+“必需”;
元素=document.getElementById(“_author”);
element.className=element.className+“必需”;
});
而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>

libraryportlet
/icon.png
假的
/css/main.css
https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js
https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.15/jquery-ui.min.js
http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js
/js/main.js
libraryportlet

但是没有成功。我哪里做错了。有人能告诉我吗?谢谢。

您可以使用liferay自己的Alloy validator验证表单,这样就不需要使用jquery和jquery validate进行表单验证

首先,需要将validator类导入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之上,用户可以很容易地禁用Javascript,因此在提交空表单时,您的应用程序会遇到一些未经处理的异常。

我建议您不要使用jquery/Javascript进行验证。Javascript运行客户端,很容易禁用。