如果ajax失败,我想返回我的按钮值。
此HTML(在PHP上):
<a href="javascript:void(0);" id="follow-topic" value="7">
<button class="btn btn-xs btn-primary pull-right"><?php echo $_LANGS['forum']['follow']; ?></button>
</a>
这个JS(在PHP上):
$("#follow-topic").click(function(event) {
var topicid = $(this).attr('value');
var button_follow_html = $(this).html();
if ($(this).is("a[disabled]")){ return false; }
$("#follow-topic button").html('<?php echo $_LANGS['system']['loading_button']; ?>');
$(this).attr({ disabled: true});
$.ajax({
url: "",
data: { follow_topic: topicid },
type: "POST",
success: function (data) {
$("#follow-topic").html(data);
$("#follow-topic").attr({ disabled: false});
},
error: function(data, button_follow_html) {
handleRequestError(data);
$("#follow-topic").attr({ disabled: false});
$("#follow-topic").html(button_follow_html);
}
});
});
我已将按钮值更改为$_LANGS['system']['loading_button']
,但如果ajax失败或客户端丢失连接,我希望返回$_LANGS['forum']['follow']
。
此系统使用多种语言,如果ajax成功,按钮将被替换为后续按钮,因此我无法使用$("#follow-topic button").html('<?php echo $_LANGS['forum']['follow']; ?>');
。
抱歉我的英文,谢谢你
答案 0 :(得分:1)
从jQuery documentation开始,如果ajax调用失败,则调用error
函数需要3个参数:
错误
类型:函数(jqXHR jqXHR,String textStatus,String errorThrown)
因此,您实际上已在此代码中的textStatus
变量中收到button_follow_html
个回复:
error: function(data, button_follow_html) {
handleRequestError(data);
$("#follow-topic").attr({ disabled: false});
$("#follow-topic").html(button_follow_html);
}
参数是optionnal,所以你可以这样做:
error: function(data) {
handleRequestError(data);
$("#follow-topic").attr({ disabled: false});
$("#follow-topic").html(button_follow_html);
}
button_follow_html
不会被重新定义,并且仍然具有与ajax调用之前相同的值,因此您可以按原样使用它。