我有一个提交按钮,如果填写了所有必填字段,则会重定向到另一个页面。
<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;
}
}
答案 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..*/ };
希望它有所帮助!