Javascript jqueryajax没有执行成功
我正在通过ajax发送请求,以便在数据库中插入数据。成功提交后,我的按钮消息未更改。在按下时,我会触发消息Javascript jqueryajax没有执行成功,javascript,jquery,html,ajax,dom,Javascript,Jquery,Html,Ajax,Dom,我正在通过ajax发送请求,以便在数据库中插入数据。成功提交后,我的按钮消息未更改。在按下时,我会触发消息请稍候…当成功触发时,设置新的html值完成。成功创建了数据库中的记录,但未更改“完成”的按钮文本 我的剧本: var Friend = { // Add new friend add: function() { var btn = $(".btn-add-friend"); btn.click(function() {
请稍候…
当成功触发时,设置新的html值完成
。成功创建了数据库中的记录,但未更改“完成”的按钮文本
我的剧本:
var Friend = {
// Add new friend
add: function() {
var btn = $(".btn-add-friend");
btn.click(function() {
$(this).html("Please wait...");
$.ajax({
type: "post",
url: baseurl + "/FriendRequest/send",
data: {
friend: $(this).data('friend')
},
success: function(xhr, status) {
$(this).html("Done"); // Not wortk
alert("done"); // <-- Work
},
error: function(response, s, e) {
alert(response.responseText);
},
complete: function () {
//. the some from success
}
});
});
},
// Initialise
init: function() {
Friend.add();
}
};
var-Friend={
//添加新朋友
添加:函数(){
var btn=$(“.btn添加朋友”);
点击(函数(){
$(this.html(“请稍候…”);
$.ajax({
类型:“post”,
url:baseurl+“/FriendRequest/send”,
数据:{
friend:$(this.data('friend'))
},
成功:功能(xhr,状态){
$(this.html(“Done”);//不是wortk
警报(“完成”);//此
在ajax函数回调中是…ajax调用,而不是单击的元素。
你必须用它来替换它
add: function() {
var btn = $(".btn-add-friend");
btn.click(function() {
var self = $(this);
self.html("Please wait...");
$.ajax({
type: "post",
url: baseurl + "/FriendRequest/send",
data: {
friend: self.data('friend')
},
success: function(xhr, status) {
self.html("Done");
},
要使用此
,您需要附加属性。使用url添加以下内容
context:this
因此,更新后的代码将
$.ajax({
type: "post",
url: baseurl + "/FriendRequest/send",
context:this,
data: {
friend: $(this).data('friend')
},
success: function(xhr, status) {
$(this).html("Done"); // Will work
alert("done"); // <-- Work
},
error: function(response, s, e) {
alert(response.responseText);
},
complete: function () {
//. the some from success
}
});
$.ajax({
类型:“post”,
url:baseurl+“/FriendRequest/send”,
背景:这,,
数据:{
friend:$(this.data('friend'))
},
成功:功能(xhr,状态){
$(this.html(“Done”);//可以使用
alert(“done”);//在回调中,这指的是Ajax调用的jqXHR
对象,而不是元素。因此,请尝试在Ajax请求之前将其分配给变量,然后在success函数中使用此变量:
//Before ajax request
var _this = $(this);
//Inside success function
_this.html("Done");
希望这有帮助。在将变量baseurl
传递到url
之前,检查变量baseurl是否有一些值。baseurl并没有问题,它只是控制器的url,在单击成功插入数据库的所有数据后。我正在循环朋友列表表单db,有100个用户使用“some”按钮。若我设置btn.html(“完成”)
我将所有按钮更改为“完成”:(为此,我只需要指向一个按钮您需要一个变量来保存这个值,EditdRight….感谢现在的工作。因此,下次我需要定义变量时,它将保存这个谢谢。每个函数通常都有自己的这个值,所以当这个在单击函数中时,是clicked元素,与ajax函数相同,这个
在成功
函数中是ajax调用,而不是元素。是的,我现在明白了,你节省了我很多时间。再次感谢
//Before ajax request
var _this = $(this);
//Inside success function
_this.html("Done");