[英]I am trying to make form validation with javascript but email validation not working
[英]I am trying to ask how to get validation form through js
我正在运行这段代码。 在这里,我在按下提交按钮后尝试获取错误声明,但在 html web 页面上输入 2 个字母后无法收到任何错误通知(name.length<5 将给出错误通知)。 但是,我什么也没得到。 有人可以查看此代码。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content ="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title> practice</title>
</head>
<body>
<h1><b>Welcome to the your page.</b></h1>
<form action="#" name="myForm"
method="post" onsubmit="return validateForm()">
What is your name?:
<input id="name" type="text" name="fname" placeholder="Required" required>
<span class ="formerror"></span>
<input type="submit" value="Submit">
</form>
</body>
<script>
function seterror(id,error)
{
element= document.getElementById(id);
element.getElementsByClassName
("formerror")[0].innerHTML=error;
}
function validateForm(){
var returnval = true;
var name = document.forms['myform']["fname"].value;
if(name.length<5)
{seterror("fname","length of name is too short");
returnval = false;}
//console.log('name sf');
//return false;
return returnval;
}
</script>
</html>
一种方法是在输入上使用minLength
(1)属性:
<html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content ="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title> practice</title> </head> <body> <h1><b>Welcome to the your page.</b></h1> <form action="#" name="myForm" method="post" onsubmit="return validateForm()"> What is your name?: <input id="name" type="text" name="fname" placeholder="Required" required minLength="5"> <span class ="formerror"></span> <input type="submit" value="Submit"> </form> </body>
首先,您的seterror
function 有问题,但错误无法到达控制台,因为您的表单将始终提交。 无论。 因此,要查看发生了什么,您应该防止默认行为:
onsubmit="event.preventDefault();return validateForm()"
然后你会得到一个错误: Cannot read properties of undefined (reading 'fname')
。
// 'myform' should be 'myForm'
document.forms['myform']
你的错误 #2: Uncaught TypeError: Cannot read properties of null (reading 'getElementsByClassName')
。
// 'element' should be 'document'
element.getElementsByClassName("formerror")[0].innerHTML = error;
完整的工作代码:
function seterror(id, error) {
document.getElementsByClassName("formerror")[0].innerHTML = error;
}
function validateForm() {
var returnval = true;
var name = document.forms['myForm']["fname"].value;
if (name.length < 5) {
seterror("fname", "length of name is too short");
returnval = false;
}
return returnval;
}
下一步
不要使用内联事件处理程序,它们更难使用。 相反,您应该使用.addEventListener()
以现代方式处理事件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.