在js方法体里:
  alert(1);
  if(message != "ok")
   {alert(message);form1.sendTo.focus();return false;}调用此方法,如果message值不等于ok可以进入if里面,在弹出1后再次弹出message值
可是去掉alert(1);这行代码时,当message != ok时  却不可以进入if里面  ,message值弹不出来....
这样的问题都有 .....(试验了很多次了 !)望高手解答

解决方案 »

  1.   


    function sendto(){
    var sendtoValue = $("tsendGreetings.sendTo").value;
    menu.check(sendtoValue,Callback);
    }
    function sendtoes(){
    var sendtoValue = $("tsendGreetings.sendTo").value;
    menu.check(sendtoValue,Callback);

    }
    function Callback(sendtos){
    var content1 = "请填写收卡昵称!";
    var content2 = "请输入正确的格式!";
    var content3 = "请填写收卡人邮箱!";
    var content4 = "请输入正确的邮箱!";
    var content5 = "请填写收卡人信息!"
    if(sendtos == "failed1")
     {document.getElementById("replace").innerHTML=content1;message = content1 ;return false;}
    if(sendtos == "failed2")
     {document.getElementById("replace").innerHTML=content2;message = content2 ;return false;}
    if(sendtos == "failed3")
     {document.getElementById("replace").innerHTML=content3;message = content3 ;return false;}
    if(sendtos == "failed4")
    { document.getElementById("replace").innerHTML=content4;message = content4 ;return false;}
    if(sendtos == "failed5")
     {document.getElementById("replace").innerHTML=content5;message = content5 ;return false;}
    if(sendtos == "success")
     {document.getElementById("replace").innerHTML="";message = "ok";}
    }
    function check(form)

      sname=form1.sendFrom.value;
      semail=form1.sendFromEmail.value;
      sendto = form1.sendTo.value;
      re=/^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$/i;
      if(sname==''|| sname == ' ' || sname == '  '|| sname == '   '|| sname == '    '|| sname == '     '){alert('请输入发卡人的姓名');form1.sendFrom.focus();return false;}
      if(semail=='' || semail==' ' || semail=='  ' || semail=='   ' || semail=='    ' || semail=='     '){alert('请输入发卡人的EMAIL');form1.sendFromEmail.focus();return false;}
      if(semail.search(re)==-1) {alert("请输入正确的发卡人email");form1.sendFromEmail.focus();return false;}
      if (sname.indexOf("~") >=0 ){alert("不能包含~字符");form1.sendFrom.focus();return false;}
      sendtoes();//
    //  alert(12);
      if(message != "ok")
       {form1.sendTo.focus();return false;}
         
    }方法稍微改了下 ,不过如果有alert(12);这行代码是  sendTo什么都不填  还是不会进去if里面
    如果去掉alert(12);  sendTo不填就会进if里面去  之前提问的时候sendTo即使填了错误值也不会进去if里面(去掉alert方法)
    还有check方法里面不可以调用sendto方法,把sendto修改sendtoes又可以调用了(是不是因为该方法里面有  sendto = form1.sendTo.value;的原因啊)
      

  2.   

    就是你 if 语句的格式不要连着写 if(where)
    {
       //do sth
    }
      

  3.   

    还有check方法里面不可以调用sendto方法,把sendto修改sendtoes又可以调用了(是不是因为该方法里面有  sendto = form1.sendTo.value;的原因啊)check方法里 不能调用sendto方法 是因为 在check 方法里 
    你有变量定义为sendto 了
    function check(form)

      sname=form1.sendFrom.value;
      semail=form1.sendFromEmail.value;
      sendto = form1.sendTo.value;
      
      sendtoes();//
        
    }

    sendto = form1.sendTo.value;
      

  4.   

    果然是那样不过那个问题还是那样啊
    我加了几个alert  alert(22);
      sendtoes();
    alert(33);
      if(message != "ok"){
       //form1.sendTo.focus();
       alert(44);
       return false;
      }加了alert(33);  然后让message不等于ok  能进if里面弹出alert(44)
    但是去掉alert(33);  同样让message不等于ok  结果不能进if里面  什么原因啊  
      

  5.   

    menu.check(sendtoValue,Callback);
    这个函数的意思是 检查 第一个参数 ,在检查结束之后 会执行 第二个参数所对应的函数也就是Callback 函数sendtoes();//
    //  alert(12);
      if(message != "ok")
          {form1.sendTo.focus();return false;}
    你不写 alert 的时候 ,很可能 menu.check(sendtoValue,Callback) 这个函数没运行完也就是还没运行到 Callback ,所以 if(message != "ok")
          {form1.sendTo.focus();return false;}就会 有问题, 因为你alert 了 时间会延迟, 就会执行到 Callback 函数
      

  6.   

    哦  这样的啊  那这样的问题要怎么解决哦  不可能写个alert()方法把...