zoukankan      html  css  js  c++  java
  • 一个很简单的验证码验证问题,花费了好长时间

     function yzm()
    {
    //发送POST数据
      ajax.send(postStr); 
      //获取执行状态
      ajax.onreadystatechange = function() {
      //如果执行状态成功,那么就把返回信息写到指定的层里
      if (ajax.readyState == 4 && ajax.status == 200) 
      {
       //msg.innerHTML = ajax.responseText;
       if( ajax.responseText=="error")
       {
         alert("验证码输入错误,请重输!");
         document.getElementById("yzm").value=""; 
         return false;
       }
       else
       { return true;}
       
      }   
      };
      if(ajax.onreadystatechange) //红色部分刚开始未添加
      return true;
    }
    }
    
    function myformsubmit()
     {
     
      if(yzm())
      {   
        document.form1.submit();
      }
     }

    验证码提交验证时,当填写验证码错误时,提示错误不提交。但当填写验证码正确时,页面停止在原地没反应。这是什么原因呢?刚开始,还以为可能是

     document.form1.submit();语句的问题。后来单独实验了一下,发现没问题。找来找去,原来是
    ajax.onreadystatechange = function() {……};这个语句导致的里面虽然有 return true; 但是只是传递给了
    ajax.onreadystatechange变量,函数 function yzm()并没有返回值(即返回值为空),所以单击时,验证码正确,却出现了页面静止不变的问题。
    对于ajax的理解还是比较肤浅,返回值出现了 undefined 情况。
    最后为了好处理,还是将提交submit放在yzm函数中处理比较方便
    //msg.innerHTML = ajax.responseText;
       if( ajax.responseText=="error")
       {
         Showbo.Msg.alert("验证码输入错误,请重输!");
         document.getElementById("yzm").value=""; 
         return false;
       }
       if(ajax.responseText=="success")
       {
         document.form1.submit(); 
       }
    
    
    
     
  • 相关阅读:
    windows 7系统搭建PHP网站环境
    本机搭建PHP环境全教程(图文)
    cmd不是内部命令解决方法
    [Tex学习笔记]章节用罗马字母编号
    丁伟岳院士逝世 享年70岁
    2014年度江西省青年科学家培养对象名单(共36名)
    Alexander Grothendieck去世了
    [詹兴致矩阵论习题参考解答]序言
    2014-2015第一学期听课安排
    一个老和尚的真言
  • 原文地址:https://www.cnblogs.com/imustun/p/9250318.html
Copyright © 2011-2022 走看看