论坛首页 Web前端技术论坛

struts2 ajax 验证输入值是否存在

浏览 5158 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-02-19   最后修改:2009-02-19

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>标题 &nbsp;&nbsp; &nbsp;&nbsp;
</td>
<td bgcolor="#FFFFFF">
<s:textfield name="title" id="title" maxlength="50"
 <span id="checkTitle" class="STYLE57">   (1)//验证时要显示的返回结果,存在或者可以使用
 <a href="#" onclick="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" 属性才能起作用,不然无法验证

   发表时间:2009-02-25  
思路不错.我看到过用iframe进行上传文件显示进度的时候.
这样做的因为必须用post提交file.

我个人认为.这个有点复杂了..这个页面虽然也不刷新.但是不如直接用get进行请求

的ajax来的快.

prototype上面可以直接用ajax.sturts2也有dojo ajax吧...


function testAjax({
var url = 'your url';
  // alert(url);
new Ajax.Request(url, {
method :'get',
onCreate: function(){
var div = $('show_div');
div.innerHTML = "数据加载中....";
//显示加载页面....
},
onSuccess : function(transport, json) {
var div = $('show_div');
div.innerHTML = "&nbsp;";
var test = transport.responseText;
alert(test);

}
div.innerHTML =html;
}
});
//ajax封装的函数结束...

<div id="show_div"></div>
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics