js中60s之内发送验证码,按钮不可被点击,错在哪?怎么修改?
$(function(){//获取短信验证码varvalidCode=true;$(".msgs").click(function(){varmobile=documen...
$(function () {
//获取短信验证码
var validCode=true;
$(".msgs").click (function () {
var mobile = document.getElementById("mobile").value;
var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
if(!myreg.test($("#mobile").val()))
{
alert('请输入有效的手机号码!');
return false;
}
var urlstr='{:U('User/sendcode/mobile/','','')}'+ '/'+ mobile;
$.post(urlstr);
alert("验证码已经成功发送,请注意查收!");
var time=60;
var code=$(this);
if (validCode) {
validCode=false;
code.addClass("msgs1");
var t=setInterval(function () {
time--;
code.html(time+"秒");
if (time==0) {
clearInterval(t);
code.html("重发");
validCode=true;
code.removeClass("msgs1");
}
},1000)
}
})
}) 展开
//获取短信验证码
var validCode=true;
$(".msgs").click (function () {
var mobile = document.getElementById("mobile").value;
var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
if(!myreg.test($("#mobile").val()))
{
alert('请输入有效的手机号码!');
return false;
}
var urlstr='{:U('User/sendcode/mobile/','','')}'+ '/'+ mobile;
$.post(urlstr);
alert("验证码已经成功发送,请注意查收!");
var time=60;
var code=$(this);
if (validCode) {
validCode=false;
code.addClass("msgs1");
var t=setInterval(function () {
time--;
code.html(time+"秒");
if (time==0) {
clearInterval(t);
code.html("重发");
validCode=true;
code.removeClass("msgs1");
}
},1000)
}
})
}) 展开
2个回答
展开全部
问题有几点,代码如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题</title>
<style>
.msgs1{
background:blue;
}
</style>
<script src="jquery.js"></script>
<script>
$(function () {
//获取短信验证码
var validCode=true;
$(".msgs").click (function () {
//var mobile = document.getElementById("mob").value;
//这里有一处错误:你现在用的是jquery,不能直接用js的方法,应该用下面这种:
var mobile=$("#mobile").val();
var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
if(!myreg.test(mobile))
{
alert('请输入有效的手机号码!');
return false;
}
//var urlstr='{:U('User/sendcode/mobile/','','')}'+ '/'+ mobile;
//$.post(urlstr);
//这个地方我就直接跳过了
alert("验证码已经成功发送,请注意查收!");
var time=60;
var code=$(this);
if (validCode) {
validCode=false;
code.addClass("msgs1");
var t=setInterval(function () {
time--;
code.val(time+"秒");//这里,你应该和我这里一样,.msgs 是一个button是吧?那么,就不能用html()方法,而应该用val()方法
if (time==0) {
clearInterval(t);
code.val("重发");//同上
validCode=true;
code.removeClass("msgs1");
}
},1000)
}
})
})
</script>
</head>
<body>
<form action="">
号码:<input type="text" id="mobile" value="13512346581">
<input type="button" value="发送" class="msgs">
</form>
</body>
</html>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询