一个简单的ajax表单问题
我写了一个ajax程序,奇怪的是 用于用户注册时,程序运行正确;但在用户登录时,却出现问题。登录时填写的表单内容不能够提交到 struts 的 aciton ,总是传一个空值。 希望朋友们能够给与解决方法。
代码如下:
<%@ page language= "java " pageEncoding= "gb2312 "%>
<%@ taglib uri= "http://jakarta.apache.org/struts/tags-bean " prefix= "bean "%>
<%@ taglib uri= "http://jakarta.apache.org/struts/tags-html " prefix= "html "%>
<html>
<head>
<title> 用户登录 </title>
<script src= "js/net.js "> </script>
</head>
<body>
<script type= "text/javascript ">
var times=0;
var form = document.loginForm;
function subform(){
var gtext=this.req.responseText;
var info=document.getElementById( "info ");
if(gtext.indexOf( "validate_successful ")!=-1){
document.forms[ "form "].submit();
//当得到的值表示合法,则验证码通过。
}else{
times++;
if(times> =3){//如果连接3次输入错误,则重载图片,可以防止作弊和用户看不清图片;
info.innerHTML= "接连3次输入错误。更新验证码,请重新输入 ";
document.forms[ "form "].num.value= " ";
show(document.getElementById( 'random '));
times=0;
}else{
info.innerHTML= "第 "+times+ "次验证码错误,请注意区分大小写 ";
}
document.forms[ "form "].num.select();
}
}
function validata(obj){
var enter=true;
var info=document.getElementById( "info ");
var msg= " ";
if(obj.email.value.match(/^\s*$/g)){//如果未输入邮箱,提示
msg+= "请输入您的邮箱 <br> ";enter=false
}
if (obj.email.value.length!= 0)
{
for (i=0; i <obj.email.value.length; i++)
if (obj.email.value.charAt(i)== "@ ")
break;
if (i==obj.email.value.length)
{
msg+= "邮箱不合法 <br> ";enter=false
}
}
if(obj.pwd.value.match(/^\s*$/g)){//如果未输入密码,提示
msg+= "请输入您的密码 <br> ";enter=false
}
if(obj.num.value.match(/^\s*$/g)){//如果未输入验证码,提示
msg+= "请输入验证码 <br> ";enter=false
}
if(enter==true){
return subform();
}
if(enter==false){
info.innerHTML=msg;
return false;
}
var url= "num.jsp?num= "+obj.num.value;
var newxmlhttp=new net.ContentLoader(url,subform, " ", "get ",null,null);
return false;
}
function show(o){
//重载验证码
var timenow = new Date().getTime();
o.src= "random.jsp?d= "+timenow;
}
</script>