【发布时间】:2020-05-23 12:03:00
【问题描述】:
我有一个验证信用卡凭据的页面。在我需要将用户重定向到另一个页面之前,一切都很好。
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>
每个功能都正常工作,我检查了每个功能,并使用警报查看 if 是否有效并且确实有效。我在其他页面上使用了相同的方法,效果很好,但 location.href 不起作用。我也尝试过 document.location.href 和 window.location 但我得到了相同的结果。实际发生的是相同的页面被重新加载而不是被重定向。
【问题讨论】:
-
只是一个提示,不回答问题。不需要输入 vNumarCard(numar) == true,你可以写 fun1() && fun2() && fun3()
-
项目中的success.html在哪里?试试
"/success.html" -
感谢您的提示! success.html 位于同一位置。
-
“不起作用”不是一个有用的描述(如果它起作用你不会问)。你检查过你的浏览器开发者工具吗?
-
我已经检查过了,没有任何错误或警告。而且我不知道如何比以前更好地解释这个问题。
标签: javascript html