代码之家  ›  专栏  ›  技术社区  ›  Etienne

页面在javascript警报后重新加载/刷新-不要这样做!

  •  3
  • Etienne  · 技术社区  · 15 年前

    我的javascript函数正在运行,但出于某种原因,在if语句中显示警报之后,页面会重新加载/刷新,我不希望这样做。为什么会这样?我怎样才能改变我的函数,使它不会这样做?

    我的功能

    function valSubmit(){    
        varName = document.form1.txtName.value;
        varSurname = document.form1.txtSurname.value;
        varEmail = document.form1.txtEmail.value;
        varOrg = document.form1.txtOrg.value;
    
        if (varName == "" || varSurname == "" || varEmail == "" || varOrg == "" ) 
        {
    
         alert("Please fill in all mandatory fields");  
    
        }
        else
        { 
            document.body.style.cursor = 'wait';
            document.form1.btnSubmit.style.cursor = 'wait';
            document.form1.action = "http://now.eloqua.com/e/f2.aspx"
            document.form1.submit();
            return true;    
        }
    
     }
    

    P.S我正在使用ASP.NET 3.5

    4 回复  |  直到 8 年前
        1
  •  8
  •   Fenton    15 年前

    这是添加了返回错误语句的完整函数。

    此外,当您调用valsubmit时,它应该如下所示:

    …onSubmit=“返回valSubmit();”..

    注意,您还需要在此处指定返回。

    功能如下:

    function valSubmit(){
    
    varName = document.form1.txtName.value;
    varSurname = document.form1.txtSurname.value;
    varEmail = document.form1.txtEmail.value;
    varOrg = document.form1.txtOrg.value;
    
     if (varName == "" || varSurname == "" || varEmail == "" || varOrg == "" ) 
     {
    
         alert("Please fill in all mandatory fields");
         return false;
    
     }
     else
     { 
        document.body.style.cursor = 'wait';
        document.form1.btnSubmit.style.cursor = 'wait';
        document.form1.action = "http://now.eloqua.com/e/f2.aspx"
        document.form1.submit();
        return true;    
     }
    
    }
    
        2
  •  1
  •   Erik    15 年前

    你必须增加 return false; 停止表单提交中的默认操作

        3
  •  0
  •   Kniganapolke    15 年前

    我想你应该补充一下 return false; 在你之后 alert ,因为表单继续提交。

        4
  •  0
  •   Elyor    8 年前

    只是在警报后返回错误。像:

    alert("Please fill in all mandatory fields");
    return false;