gpt4 book ai didi

javascript - 返回 false javascript 后表单仍然提交

转载 作者:行者123 更新时间:2023-11-30 06:35:36 25 4
gpt4 key购买 nike

我在使用 javascript 进行验证时遇到了一点问题。

<form action="insert.php" id="form" name="form" method="post" 
onSubmit="return validate()">
<pre>
Vul hier de/het E-mail adres(sen) in
<textarea name="email" rows="5" cols="50"></textarea><br>
Typ hier de E-mail
<textarea name="text" rows="5" cols="50"></textarea><br>
<input type="submit" name="Submit" value="Submit">
</pre>
</form>

如您所见,我有两个文本区域。在上面的区域中,您应该在彼此下方输入一个或多个电子邮件地址,而在底部的文本区域中,您应该自己撰写电子邮件。然后,当您单击提交时,它会将电子邮件发送到所有指定的电子邮件地址。

现在,我已经对两个文本区域进行了验证:

function explodeArray(emailID, delimiter) {
tempArray = new Array(1);
var Count = 0;
var tempString = new String(emailID);

while (tempString.indexOf(delimiter) > 0) {
tempArray[Count] = tempString.substr(0, tempString.indexOf(delimiter));
tempString = tempString.substr(
tempString.indexOf(delimiter) + 1,
tempString.length - tempString.indexOf(delimiter) + 1
);
Count = Count + 1
}

tempArray[Count] = tempString.replace("\r", "");
return tempArray;
}

function validate() {
var emailID = document.form.email;
var delimiter = "\n";
var emailArray = explodeArray(emailID.value, delimiter);
var textID = document.form.text;
var length = emailArray.length,
element = null;
for (var i = 0; i < length; i++) {
emailVar = emailArray[i];

if (emailVar == null) {
alert("Email-adres bestaat niet")
emailID.focus()
return false
}
if (emailVar == "") {
alert("Email-adres veld is leeg")
emailID.focus()
return false
}
if (checkEmail(emailVar) == false) {
emailVar.value = ""
alert("Ongeldig E-mail adres");
emailVar.focus()
return false
}
}
if ((textID.value == null) || (textID.value == "")) {
alert("E-mail textveld is leeg")
textID.focus()
return false
}
document.getElementById("form").submit();
return true
}

function checkEmail(hallo) {
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(hallo)) {
return true
}
return false
}

(我可能也复制了很多不相关的代码,为此感到抱歉,只是复制了整个东西以防万一......)

现在的工作是:

-当两个文本区域都为空时不会提交;

-当电子邮件地址有效时不会提交但是底部文本区域为空;

什么工作是:

-当电子邮件地址无效时,即使底部文本区域仍为空,表单仍会提交。

几个小时以来,我一直试图弄清楚这里可能出了什么问题,我用谷歌搜索并检查了 stackoverflow,但我真的找不到任何东西。谁能告诉我我在这里做错了什么?

提前致谢。

最佳答案

您正在使用不会执行的 emailVar.focus();

在这里,固定:Live Demo

if (checkEmail(emailVar) == false) {
alert("Ongeldig E-mail adres");
emailID.focus();
return false;
}

关于javascript - 返回 false javascript 后表单仍然提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14753354/

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