// JavaScript Document
reg=true;//全局变量function isValidMail() {
var mail = $('email').value
var display = false;
var password = $('password').value;
var echopassword = $('echopassword').value;
var username = $('username').value;
var code = $('code').value;
var reMail = /^(?:[a-zA-Z0-9]+[_\-\+\.]?)*[a-zA-Z0-9]+@(?:([a-zA-Z0-9]+[_\-]?)*[a-zA-Z0-9]+\.)+([a-zA-Z]{2,})+$/;
var agree = document.all('agree').checked;
if (reMail.test(mail) == false) {

document.getElementById('emailright').style.display = "none";
document.getElementById('emailwrong').style.display = "";
reg=false;
return;
}
if (password == "") {
document.getElementById('passwordright').style.display = "none";
document.getElementById('passwordwrong').style.display = "";
reg=false;
return;
}
if (echopassword == "") {
document.getElementById('echopasswordwrong').style.display = "";
reg=false;
return;
} if (password == echopassword) { } else {
document.getElementById('echopasswordwrong').style.display = "";
reg=false;
return;
}
if (username == "") {
document.getElementById('usernameright').style.display = "none";
document.getElementById('usernamewrong').style.display = "";
reg=false;
return;
}
if (code == "") {
document.getElementById('codewrong').style.display = "";
reg=false;
return;
}
if (agree == false) {
document.getElementById('agreewrong').style.display = "";
reg=false;
return;
} else {
document.getElementById('agreewrong').style.display = "none";
}
reg=true
}
function yan()
{
var name=$('code').value;
  Register.yanzheng(name,backto);
}
function backto(boo)
{
    if(boo==false)
    {
     reg=false;
    document.getElementById('codewrong').style.display = "";
    return;
    }
  
}
function userReg()
{
var username=$('username').value;
Register.usernameReg(username,callback);}
function callback(date)
{
if(date==true)
{
reg=false;
document.getElementById('usernamewrong').style.display = "";
return;
}
 
}function emailReg()
{
var email=$('email').value;
Register.emailReg(email,mailcallback)
}
function mailcallback(date)
{
if(date==true)
{
reg=false;
document.getElementById('emailwrong').style.display = "";
return;
}

}function getN(ming)
{
  return document.getElementsByName(ming)[0];
}
function blue(dom) {
document.getElementById(dom.id + 'wrong').style.display = "none";
document.getElementById(dom.id + 'right').style.display = "";
}
function sub()
{
isValidMail();
if(reg==true)
{
emailReg

userReg();
yan();
if(reg==true)
{

document.registerform.submit();
}
}
}当我前台第一次提交时候,如果有问题是不能提交的,没问题就提交,但是当我第一次提交完成,我在浏览器里按后提,这时我什么都不修改,又按提交按钮,按照我写的js,这时是不能提交的,因为数据库里面是有相同的数据的,所以我定义了一个全局变量reg来判断,但是问题救出这了,当我又点击提交时,全局变量没有得到值或者没有被修改,但是我js里面已经修改了,不知道什么原因???提交方法是function sub()

解决方案 »

  1.   

    页面后退,相当于页面重新初始化,重新执行了,你以前的变量是不会保存的,
    要判断数据库是否有数据,你应该在提交代码里ajax去数据库判断,而不是记录在前端的变量里面啊。另外,后台添加的时候还需要二次判断的,因为前端脚本和提交的数据都有可能使用工具修改的
      

  2.   

    这时是不能提交的,因为数据库里面是有相同的数据的,所以我定义了一个全局变量reg来判断
    为什么不在提交的页面判断,要在前端判断呢。。
    又或者说在那个页面应该是不能后退的才对。
      

  3.   


    但是我再次提交的时候,也会判断啊,我后台数据判断使用用ajax框架判断的,这个方法function userReg()
    ,如果用重复值,赋值reg=false,也就是不能提交啊,但是我在uerrReg里面已经赋值false了,但是提交的时候alert,reg还是等于true,为什么呢?reg既然是全局的,我赋值了,值应该改变啊?
      

  4.   

    ajax要避免缓存,url采用"xx.aspx?tmp=" + (new Date()).valueOf() 避免缓存。
    确保你的userReg函数执行了
      

  5.   

    我userReg()肯定被执行了,alert()打印的reg是false,但是我在sub()方法再打印的时候就还是true?
    为啥呢?
      

  6.   

    我在google找了很久,有点说是DWR回调函数赋值全局变量不成功的原因,我想应该是这原因,但是如何解决了,即使我在userReg()里面设置了dwr.engine.setAsync(false);  也不行
      

  7.   

    提交完成,后退的问题,本就应该避免,有很多问题是这样导致的。方法:用SESSION保存一个数据,在第一次发送到客户端时把这个数据也发到HTML里(存在JS中也行,存在隐藏表单域里也行),提交时将这个数据也提交上去,与SESSION对比,一致就进行操作,在操作完成时马上把SESSION内数据修改。这样的话,如果后台回退回去,则提交的就是上次的数据,与SESSION当前值不同,就不会进行后台入库操作了。