I want to validate the form but it is returning true value even it is false
I want return false if name.length > 10 and show error text but it is directing to the action page how?. Can anybody help me with this Code:
function ShowError(id, error) {
element = document.getElementById(id);
element.getElementsByClassName('return-error')[0].innerHTML = error;
}
function ValidateForm() {
var return_value = true;
var name = document.forms['MyForm']["name"].value;
var phonenumber = document.forms['MyForm']["number"].value;
var email = document.forms['MyForm']["email"].value;
var password = document.forms['MyForm']["pass"].value;
var cpassword = document.forms['MyForm']["cpass"].value;
if (name.length > 10) {
ShowError("name", "*Username is too long");
return_value = false;
}
return return_value;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>login & Continue</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous" />
<link href="context.css" rel="stylesheet" />
<script src="script.js"></script>
</head>
<body>
<nav class="navbar navbar-expand-lg">
<div class="container-fluid d-flex justify-content-center">
<a class="navbar-brand text-white fs-1" href="index.html">
<img src="assets\logo.png" alt="Bootstrap" width="60" height="54" class="d-inline-block align-text-top" /> The IN-Planet
</a>
</div>
</nav>
<div class="login d-flex justify-content-center align-content-center m-5">
<div class="card bg-dark flex-wrap" style="width: 30rem">
<img src="assets\Travelling-to-India1.jpg" alt="" class="card-img-top img-fillter" />
<form name="MyForm" action="home.html" onsubmit="return ValidateForm()" method="get">
<div class="m-5">
<input type="text" class="form-control m-3" placeholder="Username" name="name" id="name" />
<div class="return-error m-3"></div>
<input type="number" class="form-control m-3" placeholder="Phone Number" name="number" id="number" />
<div class="return-error m-3"></div>
<input type="email" class="form-control m-3" placeholder="Email" name="email" id="email" />
<div class="return-error m-3"></div>
<input type="password" class="form-control m-3" placeholder="Password" name="pass" id="pass" />
<div class="return-error m-3"></div>
<input type="password" class="form-control m-3" placeholder="Confirm Password" name="cpass" id="cpass" />
<div class="return-error m-3"></div>
<input type="submit" class="btn btn-info btn-lg ms-3" value="SignUp" />
</div>
</form>
</div>
</div>
<footer class="bg-dark text-light text-center p-5">
<div class="container">
<p>© 2023 THE IN-PLANET. All rights reserved.</p>
<div class="btn-group" role="group" aria-label="Basic outlined example">
<button type="button" class="btn">
<a href="www.facebook.com"
><img src="assets\socialmedia\fb.png" alt=""
/></a>
</button>
<button type="button" class="btn">
<a href="www.instagram.com"
><img src="assets\socialmedia\insta.png" alt=""
/></a>
</button>
<button type="button" class="btn">
<a href="www.whatsapp.com"
><img src="assets\socialmedia\whae.png" alt=""
/></a>
</button>
</div>
<div class="row">
<div class="footer-content col-md-4">
<a href="index.html">Home</a>
</div>
<div class="footer-content col-md-4">
<a href="feedback.html">Feedback</a>
</div>
<div class="footer-content col-md-4">
<a href="about.html">About Us</a>
</div>
<div class="footer-content col-md-4">
<a href="contact.html">Contact Us</a>
</div>
<div class="footer-content col-md-4">
<a href="privacy.html">Privacy Policy</a>
</div>
<div class="footer-content col-md-4">
<a href="service.html">Our Services</a>
</div>
</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js" integrity="sha384-oBqDVmMz9ATKxIep9tiCxS/Z9fNfEXiDAYTujMAeBAsjFuCZSmKbSSUnQlmh/jp3" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.min.js" integrity="sha384-cuYeSxntonz0PPNlHhBs68uyIAVpIIOZZ5JqeqvYYIcEL727kskC66kF92t6Xl2V" crossorigin="anonymous"></script>
</body>
</html>
Can anyone help me with this.It is returning true value even it is false. Help me with this!!!!!!!!
There are some mistakes in your code, which I am highlighting here.
No PreventDefault() function to see the validation if you don't add prevent default, your browser will reload the page when you submit the form.
Wrong calling to DOM element
element = document.getElementById(id);
document.getElementsByClassName("return-error")[0].innerHTML = error;
This code is not making sense, because you're assigning an ID to an element and reusing it to call classes. You can achieve it by this code
document.getElementsByClassName("return-error")[0].innerHTML = error;
It will call all the elements with the return-error
class and will use the specific index you assigned.
Correct Version of Code
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>login & Continue</title>
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65"
crossorigin="anonymous"
/>
<link href="context.css" rel="stylesheet" />
<script src="./app.js"></script>
</head>
<body>
<nav class="navbar navbar-expand-lg">
<div class="container-fluid d-flex justify-content-center">
<a class="navbar-brand text-white fs-1" href="index.html">
<img
src="assets\logo.png"
alt="Bootstrap"
width="60"
height="54"
class="d-inline-block align-text-top"
/>
The IN-Planet
</a>
</div>
</nav>
<div class="login d-flex justify-content-center align-content-center m-5">
<div class="card bg-dark flex-wrap" style="width: 30rem">
<img
src="assets\Travelling-to-India1.jpg"
alt=""
class="card-img-top img-fillter"
/>
<form
name="MyForm"
action="home.html"
onsubmit="event.preventDefault(); ValidateForm()"
method="get"
>
<div class="m-5">
<input
type="text"
class="form-control m-3"
placeholder="Username"
name="name"
id="name"
/>
<div class="return-error m-3"></div>
<input
type="number"
class="form-control m-3"
placeholder="Phone Number"
name="number"
id="number"
/>
<div class="return-error m-3"></div>
<input
type="email"
class="form-control m-3"
placeholder="Email"
name="email"
id="email"
/>
<div class="return-error m-3"></div>
<input
type="password"
class="form-control m-3"
placeholder="Password"
name="pass"
id="pass"
/>
<div class="return-error m-3"></div>
<input
type="password"
class="form-control m-3"
placeholder="Confirm Password"
name="cpass"
id="cpass"
/>
<div class="return-error m-3"></div>
<input
type="submit"
class="btn btn-info btn-lg ms-3"
value="SignUp"
/>
</div>
</form>
</div>
</div>
<footer class="bg-dark text-light text-center p-5">
<div class="container">
<p>© 2023 THE IN-PLANET. All rights reserved.</p>
<div class="btn-group" role="group" aria-label="Basic outlined example">
<button type="button" class="btn">
<a href="www.facebook.com"
><img src="assets\socialmedia\fb.png" alt=""
/></a>
</button>
<button type="button" class="btn">
<a href="www.instagram.com"
><img src="assets\socialmedia\insta.png" alt=""
/></a>
</button>
<button type="button" class="btn">
<a href="www.whatsapp.com"
><img src="assets\socialmedia\whae.png" alt=""
/></a>
</button>
</div>
<div class="row">
<div class="footer-content col-md-4">
<a href="index.html">Home</a>
</div>
<div class="footer-content col-md-4">
<a href="feedback.html">Feedback</a>
</div>
<div class="footer-content col-md-4">
<a href="about.html">About Us</a>
</div>
<div class="footer-content col-md-4">
<a href="contact.html">Contact Us</a>
</div>
<div class="footer-content col-md-4">
<a href="privacy.html">Privacy Policy</a>
</div>
<div class="footer-content col-md-4">
<a href="service.html">Our Services</a>
</div>
</div>
</div>
</footer>
<script
src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js"
integrity="sha384-oBqDVmMz9ATKxIep9tiCxS/Z9fNfEXiDAYTujMAeBAsjFuCZSmKbSSUnQlmh/jp3"
crossorigin="anonymous"
></script>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.min.js"
integrity="sha384-cuYeSxntonz0PPNlHhBs68uyIAVpIIOZZ5JqeqvYYIcEL727kskC66kF92t6Xl2V"
crossorigin="anonymous"
></script>
</body>
</html>
JS Code
function ShowError(id, error) {
document.getElementsByClassName("return-error")[0].innerHTML = error;
}
function ValidateForm() {
var return_value = true;
var name = document.forms["MyForm"]["name"].value;
var phonenumber = document.forms["MyForm"]["number"].value;
var email = document.forms["MyForm"]["email"].value;
var password = document.forms["MyForm"]["pass"].value;
var cpassword = document.forms["MyForm"]["cpass"].value;
if (name.length > 10) {
ShowError("name", "*Username is too long");
return_value = false;
}
return return_value;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>login & Continue</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous" />
<link href="context.css" rel="stylesheet" />
<script src="./app.js"></script>
</head>
<body>
<nav class="navbar navbar-expand-lg">
<div class="container-fluid d-flex justify-content-center">
<a class="navbar-brand text-white fs-1" href="index.html">
<img src="assets\logo.png" alt="Bootstrap" width="60" height="54" class="d-inline-block align-text-top" /> The IN-Planet
</a>
</div>
</nav>
<div class="login d-flex justify-content-center align-content-center m-5">
<div class="card bg-dark flex-wrap" style="width: 30rem">
<img src="assets\Travelling-to-India1.jpg" alt="" class="card-img-top img-fillter" />
<form name="MyForm" action="home.html" onsubmit="event.preventDefault(); ValidateForm()" method="get">
<div class="m-5">
<input type="text" class="form-control m-3" placeholder="Username" name="name" id="name" />
<div style="color:red" class="return-error m-3"></div>
<input type="number" class="form-control m-3" placeholder="Phone Number" name="number" id="number" />
<div class="return-error m-3"></div>
<input type="email" class="form-control m-3" placeholder="Email" name="email" id="email" />
<div class="return-error m-3"></div>
<input type="password" class="form-control m-3" placeholder="Password" name="pass" id="pass" />
<div class="return-error m-3"></div>
<input type="password" class="form-control m-3" placeholder="Confirm Password" name="cpass" id="cpass" />
<div class="return-error m-3"></div>
<input type="submit" class="btn btn-info btn-lg ms-3" value="SignUp" />
</div>
</form>
</div>
</div>
<footer class="bg-dark text-light text-center p-5">
<div class="container">
<p>© 2023 THE IN-PLANET. All rights reserved.</p>
<div class="btn-group" role="group" aria-label="Basic outlined example">
<button type="button" class="btn">
<a href="www.facebook.com"
><img src="assets\socialmedia\fb.png" alt=""
/></a>
</button>
<button type="button" class="btn">
<a href="www.instagram.com"
><img src="assets\socialmedia\insta.png" alt=""
/></a>
</button>
<button type="button" class="btn">
<a href="www.whatsapp.com"
><img src="assets\socialmedia\whae.png" alt=""
/></a>
</button>
</div>
<div class="row">
<div class="footer-content col-md-4">
<a href="index.html">Home</a>
</div>
<div class="footer-content col-md-4">
<a href="feedback.html">Feedback</a>
</div>
<div class="footer-content col-md-4">
<a href="about.html">About Us</a>
</div>
<div class="footer-content col-md-4">
<a href="contact.html">Contact Us</a>
</div>
<div class="footer-content col-md-4">
<a href="privacy.html">Privacy Policy</a>
</div>
<div class="footer-content col-md-4">
<a href="service.html">Our Services</a>
</div>
</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js" integrity="sha384-oBqDVmMz9ATKxIep9tiCxS/Z9fNfEXiDAYTujMAeBAsjFuCZSmKbSSUnQlmh/jp3" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.min.js" integrity="sha384-cuYeSxntonz0PPNlHhBs68uyIAVpIIOZZ5JqeqvYYIcEL727kskC66kF92t6Xl2V" crossorigin="anonymous"></script>
</body>