jquery 6位支付密码弹窗

本文介绍了一种改进的支付密码验证方法,解决了苹果端兼容性问题,通过HTML、CSS和JavaScript实现了密码输入界面,并在输入六位密码后触发AJAX请求进行密码验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开启免密支付的时候弹出支付密码验证,如果验证通过,则变更状态,反之提示更改失败,网上找了个网友的版本,但是不兼容苹果端,苹果网页输入的时候弹窗无法输入值,所以改进了一下。

实现效果:

html:

<input type="hidden" name="password" id="password">
	<input type="hidden" id="text" maxLength="6" />
	<div align="center" class="passpword_div" style="display: none">
		<div align="center" class="line1">
			<p>请输入支付密码</p>
		</div>
		<div class="input">
			<div class="box">
				<input type="text" maxLength="1" class="onestr1" readonly>
			</div>
			<div class="box">
				<input type="text" maxLength="1" class="onestr2" readonly>
			</div>
			<div class="box">
				<input type="text" maxLength="1" class="onestr3" readonly>
			</div>
			<div class="box">
				<input type="text" maxLength="1" class="onestr4" readonly>
			</div>
			<div class="box">
				<input type="text" maxLength="1" class="onestr5" readonly>
			</div>
			<div class="box">
				<input type="text" maxLength="1" class="onestr6" readonly>
			</div>
		</div>
	</div> 
	<div class="selectCarCon" style="left: 0px;display: none">
		<div class="block">
			<table>
				<tr>
					<td onclick="add(1)">1</td>
					<td onclick="add(2)">2</td>
					<td onclick="add(3)">3</td>
				</tr>
				<tr>
					<td onclick="add(4)">4</td>
					<td onclick="add(5)">5</td>
					<td onclick="add(6)">6</td>
				</tr>
				<tr>
					<td onclick="add(7)">7</td>
					<td onclick="add(8)">8</td>
					<td onclick="add(9)">9</td>
				</tr>
				<tr>
					<td class="td" style="font-size: 18px" onclick="close_bg()">关闭</td>
					<td onclick="add(0)">0</td>
					<td class="td" onclick="deletetd()"><image src="__STATIC__/express/images/delete.png" width=40px height=40px></image></td>
				</tr>
			</table>
		</div>
	</div>

css:

.line1 {font-size: 15px;color: #868585;margin-bottom: 8px;}
td{width: 33.3%;}
table {width: 100%;text-align: center;line-height: 2.3;font-size: 25px;background-color: #F8F8F8;border-collapse: collapse;}
table,table tr th,table tr td {border: 1px solid #E9E9E9;}
.selectCarCon {width: 100%;position: fixed;bottom: 0;z-index:10000;}
.block {display: block}
.td {background-color: #E6E6E6}
.box,.box input {height: 40px;width: 40px;}
.input {display: flex;justify-content: center;}
input {	font-size: 24px;text-align: center;border:1px solid #b4b4b4;border-right:1px solid rgba(255,255,255,0);}
.box:last-child input{border-right:1px solid #b4b4b4;}
.passpword_div{position: fixed;top:20%;width: 90%;left: 5%;background: #fff;padding:20px 0;z-index:10000;border-radius: 10px}

js:

function close_bg(){
	$(".selectCarCon").css({'display':'none'});
	$(".div_bg").css({'display':'none'});
	$(".passpword_div").css({'display':'none'});
}

function add(n) {
	var str = $("#text").val();
	var now = str.length+1;
	var newstr = "";
	console.log(str);
	$(".onestr"+now).val("*");
	if (str.length<6) {
		newstr = str + n;
		$("#text").val(newstr);			 
	}
	if (newstr.length == 6){
		var password = $("#text").val();
		$("#password").val(password);

		var auth_code = '{$Think.config.AUTH_CODE}';
		var paypwd = md5(auth_code + $.trim(password));

		$.ajax({
			type: 'GET',
			url: "{:url('mobile/express/open_pay_paswd')}",
			data:{password:paypwd,need_payment_password:'yes'},
			success:function(result){
				var result = eval("(" +result+ ")");
				layer.open({
					content: result.msg
					,skin: 'msg'
					,time: 2 //2秒后自动关闭
				});
				if(result.code == 200){
					$(".selectCarCon").css({'display':'none'});
					$(".div_bg").css({'display':'none'});
					$(".passpword_div").css({'display':'none'});
				}
			}
		})
	}
}

function deletetd(){		
	var str = $("#text").val();
	var newstr=str.slice(0,str.length-1);	
	$(".onestr"+str.length).val("");	
	$("#text").val(newstr);
}

原理:检测到输入密码等于6位触发提交ajax,进行行为更新和验证。

说明:md5方法是借用了md5.min.js对支付密码进行了加密,可不管;layer第三方弹窗插件,不必赘述;剩下的对返回结果的处理就是跟后台的交互,问题不大;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值