提交按钮中的多个onClick

时间:2014-05-30 16:44:44

标签: javascript html

我有一个提交按钮,如果填写了所有必填字段,则会重定向到另一个页面。

<input type="submit" onclick="validateForm();redirect();" class="someClass" value="Submit" />

现在,当单击该按钮时,它会调用这两个函数。如果validateForm返回false,如何将其调用到不调用重定向的位置?

如果有帮助,这是validateForm函数:

function validateForm(){
    var email = document.forms["form"]["Email"].value;
    if(email == null || email == ""){
        alert("Email must be filled out");
        return false;
    }
 }

3 个答案:

答案 0 :(得分:1)

<input type="submit" onclick="validateForm(); return false;" class="someClass" value="Submit" />

将输入更改为上面的代码。同时更改您的功能以反映下面的代码。

function validateForm(){
    var email = document.forms["form"]["Email"].value;
    if(email == null || email == ""){
        alert("Email must be filled out");
        return false;
    }else {
        redirect();
    }
 }

答案 1 :(得分:1)

添加一个onclick处理程序,比如validateAndRedirect

function validateAndRedirect()
{
    if(validateForm())
    {
        redirect();
    }
    else
    {
        return false;
    }
}

将此添加到按钮:

<input...onclick="validateAndRedirect()" ... >

此功能将调用validate()。如果验证失败,将返回false。此false将阻止按钮的提交操作。如果验证通过,它将调用redirect

答案 2 :(得分:0)

让第一个函数调用下一个函数并将其添加到HTML:

  <input> type=button onclick="validateForm(); return false;" </input> 

投入&#39;返回虚假&#39;将阻止重定向,并为您的函数执行时间。

function validateForm(){
    var email = document.forms["form"]["Email"].value;
    if(email == null || email == ""){
        alert("Email must be filled out");
        return false;
    } else
     redirect();
 }

此外,我建议不要在HTML中添加任何代码。它被认为是一种不良做法&#34;。但是,如果你仍然想要放置你的代码,那么将它作为一个&#34; onsubmit&#34;更合适。动作:

<form onsubmit="validateForm()">

如果您希望在单击提交按钮时执行该功能,您只需在脚本中添加一个事件监听器,并在您的按钮中添加一个ID,如下所示:

var button = document.getElementById("submit");
button.onclick = function validateForm() { /*same code as above..*/ };

希望它有所帮助!