struts2 ajax 验证输入值是否存在
今天做了关于struts2 ajax 验证输入是否存在的功能,现在分享给大家,希望大家多多提意见!!!
input.jsp 页面代码:
<html>
<body>
<s:form id="form1" action="" method="post" theme="simple">
<tr>
<td height="35" bgcolor="#FFFFFF" class="input2" align="left">
<span class="STYLE57">*</span>标题
</td>
<td bgcolor="#FFFFFF">
<s:textfield name="title" id="title" maxlength="50"
<span id="checkTitle" class="STYLE57"> (1)//验证时要显示的返回结果,存在或者可以使用
<a href="#" οnclick="javascript: validteTitle();"><u>验证标题是否可用</u>
</a>
</span>
</td>
</tr>
</s:form>
<script>
function validteTitle() {
if (document.getElementById("title").value == "") {
alert("请输入标题");
document.forms["form1"].title.focus();
return false;
}
document.forms["form2"].title.value = document.forms["form1"].title.value; (2) //将当前form下的文本框值传入验证的from里
document.forms["form2"].submit();
}
</script>
<s:form id="form2" action="examinTitle" target="frame1"> (3)//验证的form
<input type="hidden" name="title">
</s:form>
<iframe id="frame1" name="frame1" height="0" src="about:blank"></iframe> (4)//验证返回结果将做一个iframe弹出来
</body>
</html>
action 代码:
public class examinTitleAction extends ActionSupport{
private String title; (5)//struts2 jsp页面标签 传来的值
public void getTitle(){
return title;
}
public String setTitle(String title){
this.title = title;
}
public String examinTitle() {
String res = "";
int num = service.examinCopyTitle(title); //调用查询方法,是否存在条件
if (num == 0) {
res = "success"; //如果不存在,返回成功标志
} else {
res = "nosuccess";//如果存在,返回不成功标志
}
return res;
}
}
struts.xml 代码:
<action name="examinTitle" method="examinTitle" class="infomationAction">
<result name="success">/examin.jsp
</result>
<result name="nosuccess">/examinNo.jsp
</result>
</action>
examin.jsp 代码:
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK" %>
<%@ taglib prefix="s" uri="/struts-tags"%>
<script language="JavaScript">
<!--
parent.document.getElementById("checkTitle").innerHTML = (6) //与(1)对应,要显示的返回值
"<font color='#FF0000'>标题已经存在</font>";
parent.document.forms["form1"].subject.focus();
//-->
</script>
examinNo.jsp 代码:
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK" %>
<%@ taglib prefix="s" uri="/struts-tags"%>
<script language="JavaScript">
<!--
if(parent.document.forms["form1"].flag.value==false){
}else{
parent.document.getElementById("checkTitle").innerHTML = (6) //与(1)对应,要显示的返回值
"<font color='#00FF00'>标题可以使用</font>";
}
//-->
</script>
注:struts2 ajax 验证时:form 要注明 theme="simple" 属性才能起作用,不然无法验证