jquery表单防重复提交

网站中防止表单重复提交是一个比较普遍的需求,解决办法很多种

有利用session和cookie即生成个一次性token放在表单隐藏域防重复提交

有利用js设置变量锁定

这里以设置表单失效来实现


<!DOCTYPE html>
<html>
<head>
	<title>注册</title>
	<meta name="viewport" content="width=device-width,initial-scale=1.0">
	<meta charset="utf-8">
	<script src="../jquery-1.7.2.min.js"></script>
	<style>
	.submit-btn{  color: #fff;background-color: #7d61dd;}
	.disabled{
		background-color: #bbbbbb;
		cursor: not-allowed;
		color: #848484;
		text-shadow: 0 1px 0 #f5f5f5;
	}
	</style>
</head>
<body class="">
<form action="ajax.php" name="form1" id="form1" class="form-horizontal" autocomplete="off">
	<input type="text" name="username">
	<input type="hidden" name="token" value="提交">
	<input type="button" class="submit-btn ajax-post" name="" value="提交" target-form="form-horizontal">
</form>
<script>
	//ajax post submit请求
	$(document).ready(function() {
		$(".ajax-post").click(function(){
			var that = this;
			$(that).addClass('disabled').attr('autocomplete','off').prop('disabled',true);
			$.post("ajax.php",
					$("#form1").serialize(),
					function(data){
						if(data.status==1){
						}else{
							alert(data.info)
						}
						$(that).removeClass('disabled').prop('disabled',false);//注意post里this标识jquery 所以得用that存储 或者$(".ajax-post")
					},
				'json');
			return false;
		
		})
	})
	</script>
</body>
</html>


ajax.php

<?php
sleep(2);
$conn=mysql_connect("localhost","root","123456")or die ('连接数据库服务器失败:'.mysql_error());;
mysql_select_db("test",$conn);
mysql_query("set names 'utf8'");
$username=$_REQUEST['username'];
$sql="insert into user(number)values($username)";
$query=mysql_query($sql);
$json=array('status'=>1,'info'=>'信息');
mysql_close($conn);
echo json_encode($json);
?>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值