主要是實現異步手機發送短信成功之後在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("簡訊驗證碼傳送失敗" ); } } }); });