gpt4 book ai didi

javascript - 使用 window.onload 使用 Javascript 进行表单验证

转载 作者:行者123 更新时间:2023-11-28 02:20:45 29 4
gpt4 key购买 nike

你好,我真的很困惑,因为我是一个 javscript 初学者,这让我很困惑。

有人知道如何编写以下 javascript 表单验证吗?我确信这很简单,但我想不出这个来救我的命。

感谢您分享您的知识。

我需要在没有jquery的情况下编写以下表单验证。每当遇到错误时,请阻止提交表单。我需要使用 window.onload 函数来分配验证回调函数。有 4 个输入由 javascript 代码验证。另外,javascript 需要位于其自己的文件中。

验证规则如下:

输入:用户名;必需(是);验证(长度必须为 5-10 个字符)。输入:电子邮件;必需(是);验证(必须有@符号,必须有句点)。输入:街道名称;必需(否);验证(必须以数字开头)。输入:出生年份;必需(是);验证(必须是数字)。

我的代码如下:

<小时/>

HTML:

<小时/>
<!DOCTYPE html>
<html>
<head>


<script defer="defer" type="text/javascript" src="form.js"></script>


</head>
<body>
<form action="fake.php">
Username*: <input type="text" class="required" name="u"/><br/>
Email*: <input type="text" class="required" name="p"/><br/>
Street address: <input type="text" class="numeric" name="s"/><br/>
Year of birth*: <input type="text" class="required numeric" name="b"/><br/>


<input type="submit"/><br/>
</form>
</body>
</html>
<小时/>

JS

document.forms[0].elements[0].focus();

document.forms[0].onsubmit=function(){

for(var i = 0; i < document.forms[0].elements.length; i++){

var el = document.forms[0].elements[i];

if((el.className.indexOf("required") != -1) &&
(el.value == "")){

alert("missing required field");
el.focus();
el.style.backgroundColor="yellow";
return false;
}

if((el.className.indexOf("numeric") != -1) &&
(isNaN(el.value))){


alert(el.value + " is not a number");
el.focus();
el.style.backgroundColor="pink";
return false;
}
}
}

最佳答案

无需更改大部分代码...更新代码以进行其他验证,例如长度(需要类 verifylength 来验证长度)等等......

试试这个

HTML

<form action="fake.php">Username*:
<input type="text" class="required verifylength" name="u" />
<br/>Email*:
<input type="text" class="required email" name="p" />
<br/>Street address:
<input type="text" class="numeric" name="s" />
<br/>Year of birth*:
<input type="text" class="required numeric" name="b" />
<br/>
<input type="submit" />
<br/>
</form>

JAVASCRIPT

document.forms[0].elements[0].focus();
document.forms[0].onsubmit = function () {
for (var i = 0; i < document.forms[0].elements.length; i++) {
var el = document.forms[0].elements[i];
if ((el.className.indexOf("required") != -1) && (el.value == "")) {
alert("missing required field");
el.focus();
el.style.backgroundColor = "yellow";
return false;
} else {
if (el.className.indexOf("verifylength") != -1) {
if (el.value.length < 5 || el.value.length > 10) {
alert("'" + el.value + "' must be 5-10 charater long");
el.focus();
el.style.backgroundColor = "pink";
return false;
}
}
}

if (el.className.indexOf("email") != -1) {
var regEx = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/;
var emailTest = regEx.test(el.value);
if (!emailTest) {
alert("email not valid");
el.focus();
el.style.backgroundColor = "yellow";
return false;
}
};

if ((el.className.indexOf("numeric") != -1) && (isNaN(el.value))) {
alert(el.value + " is not a number");
el.focus();
el.style.backgroundColor = "pink";
return false;
}
}
}

working fiddle

关于javascript - 使用 window.onload 使用 Javascript 进行表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15696938/

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