在Javascript中进行三次错误尝试后,触发对表单提交页面的重定向
我有一个带有优惠券字段的页面,该页面应该允许三次不正确的尝试,然后必须重定向到另一个页面。我试着设置计数器,但没能成功。请提供以下代码的帮助在Javascript中进行三次错误尝试后,触发对表单提交页面的重定向,javascript,jquery,html,Javascript,Jquery,Html,我有一个带有优惠券字段的页面,该页面应该允许三次不正确的尝试,然后必须重定向到另一个页面。我试着设置计数器,但没能成功。请提供以下代码的帮助 function validateCoupon() { var couponkey = ["ABCDEF1", "ABCDEF2", "ABCDEF3", "ABCDEF4", "ABCDEF5", "ABCDEF6", "ABCDEF7"]; var keyinput = $('#COUPON').val().trim().toUpperCa
function validateCoupon() {
var couponkey = ["ABCDEF1", "ABCDEF2", "ABCDEF3", "ABCDEF4", "ABCDEF5", "ABCDEF6", "ABCDEF7"];
var keyinput = $('#COUPON').val().trim().toUpperCase();
if (couponkey.indexOf(keyinput) > -1) {
return true;
}
else {
alert("Invalid Key");
return false;
}
}
三次尝试失败后,我想重定向到另一个页面 您是否可能将计数器放在函数内部?这可能会在每次调用函数时重置它。您可以将计数器保持在函数范围之外 试试这个
let timesAttemped = 0;
function validateCoupon() {
var couponkey = ["ABCDEF1", "ABCDEF2", "ABCDEF3", "ABCDEF4", "ABCDEF5", "ABCDEF6", "ABCDEF7"];
var keyinput = $('#COUPON').val().trim().toUpperCase();
if (couponkey.indexOf(keyinput) > -1) {
return true;
}
else if (timesAttempted < 3) {
alert("Invalid Key");
timesAttempted++
return false;
} else if (timesAttempted === 3) {
window.location.href = "http://www.lolrofl.com" // any redirect logic here
}
}
let timescheduled=0;
函数validateCoOn(){
var couponkey=[“ABCDEF1”、“ABCDEF2”、“ABCDEF3”、“ABCDEF4”、“ABCDEF5”、“ABCDEF6”、“ABCDEF7”];
var keyinport=$('#优惠券').val().trim().toUpperCase();
if(耦合键索引of(键输入)>-1){
返回true;
}
否则如果(尝试的时间<3){
警报(“无效密钥”);
尝试的时间++
返回false;
}否则如果(尝试的时间===3){
window.location.href=”http://www.lolrofl.com“//这里有重定向逻辑吗
}
}
您可以通过关闭在不污染全局范围的情况下完成此操作:
function couponValidator() {
var couponkey = ["ABCDEF1", "ABCDEF2", "ABCDEF3", "ABCDEF4", "ABCDEF5", "ABCDEF6", "ABCDEF7"];
var attempts = 3;
return function () {
var keyinput = $('#COUPON').val().trim().toUpperCase();
if (couponkey.indexOf(keyinput) > -1) {
return true;
}
else if (--attempts <= 0) {
window.location.href = "your_url"
} else {
alert("Invalid Key");
return false;
}
}
}
var validate = couponValidator();
函数耦合验证器(){
var couponkey=[“ABCDEF1”、“ABCDEF2”、“ABCDEF3”、“ABCDEF4”、“ABCDEF5”、“ABCDEF6”、“ABCDEF7”];
var=3;
返回函数(){
var keyinport=$('#优惠券').val().trim().toUpperCase();
if(耦合键索引of(键输入)>-1){
返回true;
}
否则如果(-尝试使用计数器时您尝试了什么?我正在使用eclipse for JSP、JSTL和javascript进行页面验证,“let”未被识别。之前我将计数器设置为3并递减,我尝试了您的方法…“TimeScheduled”最初必须设置为1,因为第三次尝试shud alert,然后重定向。在第二次else if语句中,我必须重新设置rn false(不知道为什么)如果不是的话,它会在没有显示数据的情况下感谢你的页面。非常感谢你的帮助!向上投票!!!非常感谢!我最初尝试了递减,但没有(-)尝试