jquery ajax的success回调函数中实现按钮置灰倒计时

  主要是实现异步手机发送短信成功之后在ajax的success回调中实现将发送按钮置灰并倒计时,刚开始一直报js错误,问题可能出在于调用ajax之后this被更新,随意在这之前先把this对象赋给一个变量就没问题

  按钮倒计时代码

  

复制代码 代码如下:

  var wait = 60;

  get_code_time = function (o) {

  if (wait == 0) {

  o.removeAttribute("disabled");

  o.value = "免费获取验证码";

  wait = 60;

  } else {

  o.setAttribute("disabled", true);

  o.value = "(" + wait + ")秒后重新获取";

  wait--;

  setTimeout(function() {

  get_code_time(o)

  }, 1000)

  }

  }

  获取手机短信之后调用get_code_time函数代码

  

复制代码 代码如下:

  //重新获取验证码

  $('#codeagain').click(function() {

  var o = this;

  $.ajax({

  url:"Tea_sendCode.action?jsoncallback=?",

  type:"post",

  data: {accountId:accountId},

  dataType: "json",

  success: function (data) {

  if(data.status == 1 && data.code == 200){

  alert("验证码已发送至您的手机");

  get_code_time(o);

  } else {

  if(data.msg != ""){

  alert(data.msg);

  } else {

  alert("短信验证码发送失败");

  }

  }

  },

  error: function (data) {

  if(data.status == 0) {

  alert(data.msg);

  } else {

  alert("短信验证码发送失败");

  }

  }

  });

  });