I have a page that verifies credit card credentials. It's all well and good until I need to redirect the user to a another page.
function vNumarCard(numar)
{
console.log(numar);
var cardno = /^(?:4[0-9]{12}(?:[0-9]{3})?)$/;
if(!numar.match(/^(?:4[0-9]{12}(?:[0-9]{3})?)/))
{
return false;
}
else
{
return true;
}
}
function vDataExp(data){
console.log(data);
if(!data.match(/(0[1-9]|1[0-2])[/][0-9]{2}/)){
return false;
}
else{
var d = new Date();
var anCurent = d.getFullYear();
var lunaCurenta = d.getMonth() + 1;
var parti = data.split('/');
var an = parseInt(parti[1], 10) + 2000;
var luna = parseInt(parti[0], 10);
if (an < anCurent || (an == anCurent && luna < lunaCurenta)) {
alert("Card expirat!")
return false;
}
return true;
}
}
function vCVC(cvc){
console.log(cvc);
if(!cvc.match(/[0-9][0-9][0-9]/)){
return false;
}
else{
return true;
}
}
function verCard(numar,data,cvc){
if(vNumarCard(numar)==true&&vDataExp(data)==true&&vCVC(cvc)==true){
alert('inside if');
location.href = '/success.html';
}
else if(vNumarCard(numar)==false) alert("Numarul cardului este invalid!");
else if(vDataExp(data)==false) alert("Data expirarii este invalida");
else alert("CVC incorect!");
}
function verDate(){
var numar = document.getElementsByName("numarCard")[0].value;
var data = document.getElementsByName("dataExp")[0].value;
var cvc = document.getElementsByName("codCVC")[0].value;
verCard(numar,data,cvc);
}
<!DOCTYPE html>
<html lang="ro">
<head>
<title>Cumpara</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="node_modules/bootstrap/scss/bootstrap.css">
</head>
<body>
<nav class="navbar navbar-expand-sm bg-dark navbar-dark justify-content-center">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="index.html">Acasă</a>
</li>
<li class="nav-item">
<a class="nav-link" href="modele.html">Modele</a>
</li>
<li class="nav-item">
<a class="nav-link" href="galerie.html">Galerie</a>
</li>
<li class = "nav-item">
<a href="cos.html" class = "nav-link">
<span class="glyphicon">🛒</span>
</a>
</li>
</ul>
</nav>
<div class="container">
<div class="row">
<div class="col-sm-4">
</div>
<div class="col-sm-4">
<h2 style="text-align: center;">Cumpara produsele selectate</h2>
<form method="POST">
<div class="form-group">
<label for="email">
Email:
</label>
<input type="email" name="email" class="form-control" placeholder="Email">
</div>
<div class="form-group">
<label for="numeCumparator">
Nume:
</label>
<input type="text" name="numeCumparator" class="form-control" placeholder="Nume">
</div>
<div class="form-group">
<label for="numarCard">
Numar Card:
</label>
<input type="text" name="numarCard" class="form-control" placeholder="1234 1234 1234 1234">
</div>
<div class="form-group">
<label for="dataExp">
Data de expirare:
</label>
<input type="text" name="dataExp" class="form-control" placeholder="ll/aa">
</div>
<div class="form-group">
<label for="codCVC">
CVC:
</label>
<input type="text" name="codCVC" class="form-control" placeholder="CVC">
</div>
<button name="cumpara" type="submit" class="btn btn-success btn-lg btn-block" onclick="verDate();">Cumpara</button>
</form>
</div>
<div class="col-sm-4"></div>
</div>
</div>
<script src="node_modules/jquery/dist/jquery.min.js"></script>
<script src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="scripturi/cumpara.js"></script>
</body>
</html>
Every function works corectly, I checked each of them and I used the alert to see if the if works and it does. I used the same method on other pages and it works well but location.href doesn't work. I have also tried with document.location.href and window.location but I get the same result. What actually happens is that the same page gets reloaded instead of getting redirected.
"/success.html"