我有一个带有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>
但没有成功。我做错了。任何人都可以告诉我。谢谢。
答案 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之上,用户可以轻松禁用,因此在提交空表单时会将您的应用程序暴露给某些未处理的异常。