JavaScript警告后页面重新加载/刷新 - 不想要它!

4

我的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;    
    }

 }

我使用的是ASP.NET 3.5版本。

4个回答

10

这是您完整的函数,并添加了返回false语句。

此外,在调用valSubmit时,应该像这样:

... onsubmit="return 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;    
 }

}

1

你需要添加 return false; 来阻止表单提交的默认操作


不行,我已经尝试过了,它不起作用,注意 return true; 在我的 ELSE 语句中。 - Etienne

0
我猜你应该在alert后面加上return false;,因为表单会继续提交。

不,我已经尝试过了,它不起作用,请注意 return true; 在我的 ELSE 语句内。 - Etienne

0

在警告后添加返回false。像这样:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接