gpt4 book ai didi

javascript onsubmit 事件用于多个功能检查不起作用

转载 作者:行者123 更新时间:2023-12-03 08:11:50 28 4
gpt4 key购买 nike

在 mi 验证表单中,我有两个输入字段,用于编写电子邮件并进行确认。在提交信息之前,需要进行两次确认:1-电子邮件必须看起来是一封电子邮件,2-电子邮件地址一必须与电子邮件地址二匹配。我可以使用两个单独的 javascript 函数来处理这些语句,但是当我尝试在 onsubmit 事件属性中检查它们时,我失败了。如果我写了正确的电子邮件地址,即使确认电子邮件不匹配,表单也会到达操作目的地。浏览网络对我没有帮助。这是代码(html/javascript):

<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title>Email Validation</title>

<script type="text/javascript">

function isEmail(email, output) {
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
var email = document.getElementById(email).value;

if (regex.test(email)) {
return true;
} else {
document.getElementById(output).innerHTML = 'wrong email';
return false;
}
}


function compareEmail(email, emailToCompare, output){
var email = document.getElementById(email).value;
var emailToCompare = document.getElementById(emailToCompare).value;

if(emailToCompare == email){
document.getElementById(output).innerHTML = 'ok!';
return true;
}else{
document.getElementById(output).innerHTML = 'emails dont match!';
return false;
}
}


function check(){
return isEmail() && compareEmail();
}

</script>

</head>

<body>

<form action="file.php" method="post" onSubmit="return check()">
<p>Email</p>
<input type="text" name="email" maxlength="50" id="email">
<div id="email_result">
</div>
<br/>
<p>Confirm email</p>
<input type="text" onpaste="return false;" autocomplete="off" name="email" maxlength="50" id="confirm_email" onKeyUp="return compareEmail('email', 'confirm_email', 'confirm_email_result')">
<div id="confirm_email_result">
</div>

<input type="submit" name="submit" value="Register" onclick="return isEmail('email', 'email_result');">
</form>

</body>

双重控制也不适用于以下脚本:

function check(){
if (isEmail() && compareEmail()){
return true;
}else{
return false;
}
}

如果我使用,什么都不会改变:

onSubmit="return check()"

onSubmit="check()"

在表单事件属性中。

最佳答案

您在函数调用中缺少参数:

function check(){
return isEmail('email', 'email_result') && compareEmail('email', 'confirm_email', 'confirm_email_result');
}

附注:您已在函数中声明了与参数同名的变量。它仍然可以工作,但是变量实际上并没有创建,而是会覆盖参数值,所以代码有点困惑。

关于javascript onsubmit 事件用于多个功能检查不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34109812/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com