删除项目 <tr> bootbox
remove item <tr> bootbox
我正在向我的服务器发出 ajax 请求以删除一个项目,我必须通过引导箱在前端删除,我的响应没问题,但我没有在前端删除。
function Delete(data) {
bootbox.confirm({
message: "Deseja Excluir o item?",
buttons: {
confirm: {
label: 'Yes',
className: 'btn-danger'
},
cancel: {
label: 'No',
className: 'btn-success'
}
},
callback: function (result) {
if (result) {
$.ajax({
url: "/Ponto/DeleteAjuste/" + data,
type: "POST",
contentType: "application/json;charset=UTF-8",
dataType: "json",
success: function (result) {
$(this).closest("tr").remove();
},
error: function (errormessage) {
alert(errormessage.responseText);
}
});
}
console.log('This was logged in the callback: ' + result);
}
});
@foreach (var item in ViewBag.Ajuste)
{
<tr>
<td>@item.Data</td>
<td>@item.Descricao</td>
<td>@item.Horas</td>
<td >
<a class="btn btn-danger btn-excluir" role="button" onclick="Delete(@item.Data)" ><i class="glyphicon glyphicon-trash"></i> Excluir</a>
</td>
</tr>
}
我认为问题出在这里:
$(this).closest("tr").remove();
您将无法在 ajax 成功后使用 $(this)..
循环时,将标识符(id 或 class)添加到您的
<a class="btn btn-danger btn-excluir" id="item_{@item.id}" role="button" onclick="Delete(@item.Data)" ><i class="glyphicon glyphicon-trash"></i> Excluir</a>
Return 来自控制器的 id,您可以使用它来删除所需的
$('#item_' + result.id).remove();
希望对您有所帮助:)
回调中$(this)
的含义会有所不同。在您的代码示例中,它是 $.ajax
调用的 xhr
对象。
如果你想获得点击的元素,你需要将 this
传递给你的 js 方法调用并将其存储在一个变量中(在你的其他回调之前)并在稍后根据需要在你的 $.ajax
方法的 success/done 回调。
因此在 ui 中,您将传递 this
作为 Delete
方法的第二个参数
onclick="Delete(@r.Id,this)"
在 Delete 方法中,您可以将其存储到局部变量中,稍后您可以使用它来获取最近的 table 行。
function Delete(data,t)
{
var _this = $(t);
bootbox.confirm({
//Your existing code goes here. Omitted to save space
},
callback: function(result) {
$.ajax({
//Your existing code goes here. Omitted to save space
success: function(result) {
_this.closest("tr").remove();
});
}
});
}
另一个选择 是使用不显眼的 javascript。在这种方法中,您可以在锚标记中为删除操作设置 url 并使用它而不是在 javascript 代码中对其进行硬编码。另外,给 a 标签一个 css class,它可以用作 jQuery 选择器来连接 click
事件。
<a class="btn btn-danger del-btn"
href="@Url.Action("DeleteAjuste","Ponto",new {id=item.Data})"
role="button" ><i class="glyphicon glyphicon-trash"> </i> Excluir</a>
现在,使用我们的 css class 在标签上连接点击事件。使用点击标签的 url 属性并将其用于您的 ajax 调用。例如,
$(function() {
$("a.del-btn").click(function(e) {
e.preventDefault();
var _this = $(this);
var url=_this.attr("href");
//use url for your ajax call.
$.post(url)
.done(function(res){
_this.closest("tr").remove();
});
});
});
我正在向我的服务器发出 ajax 请求以删除一个项目,我必须通过引导箱在前端删除,我的响应没问题,但我没有在前端删除。
function Delete(data) {
bootbox.confirm({
message: "Deseja Excluir o item?",
buttons: {
confirm: {
label: 'Yes',
className: 'btn-danger'
},
cancel: {
label: 'No',
className: 'btn-success'
}
},
callback: function (result) {
if (result) {
$.ajax({
url: "/Ponto/DeleteAjuste/" + data,
type: "POST",
contentType: "application/json;charset=UTF-8",
dataType: "json",
success: function (result) {
$(this).closest("tr").remove();
},
error: function (errormessage) {
alert(errormessage.responseText);
}
});
}
console.log('This was logged in the callback: ' + result);
}
});
@foreach (var item in ViewBag.Ajuste)
{
<tr>
<td>@item.Data</td>
<td>@item.Descricao</td>
<td>@item.Horas</td>
<td >
<a class="btn btn-danger btn-excluir" role="button" onclick="Delete(@item.Data)" ><i class="glyphicon glyphicon-trash"></i> Excluir</a>
</td>
</tr>
}
我认为问题出在这里: $(this).closest("tr").remove();
您将无法在 ajax 成功后使用 $(this)..
循环时,将标识符(id 或 class)添加到您的
<a class="btn btn-danger btn-excluir" id="item_{@item.id}" role="button" onclick="Delete(@item.Data)" ><i class="glyphicon glyphicon-trash"></i> Excluir</a>
Return 来自控制器的 id,您可以使用它来删除所需的
$('#item_' + result.id).remove();
希望对您有所帮助:)
回调中$(this)
的含义会有所不同。在您的代码示例中,它是 $.ajax
调用的 xhr
对象。
如果你想获得点击的元素,你需要将 this
传递给你的 js 方法调用并将其存储在一个变量中(在你的其他回调之前)并在稍后根据需要在你的 $.ajax
方法的 success/done 回调。
因此在 ui 中,您将传递 this
作为 Delete
方法的第二个参数
onclick="Delete(@r.Id,this)"
在 Delete 方法中,您可以将其存储到局部变量中,稍后您可以使用它来获取最近的 table 行。
function Delete(data,t)
{
var _this = $(t);
bootbox.confirm({
//Your existing code goes here. Omitted to save space
},
callback: function(result) {
$.ajax({
//Your existing code goes here. Omitted to save space
success: function(result) {
_this.closest("tr").remove();
});
}
});
}
另一个选择 是使用不显眼的 javascript。在这种方法中,您可以在锚标记中为删除操作设置 url 并使用它而不是在 javascript 代码中对其进行硬编码。另外,给 a 标签一个 css class,它可以用作 jQuery 选择器来连接 click
事件。
<a class="btn btn-danger del-btn"
href="@Url.Action("DeleteAjuste","Ponto",new {id=item.Data})"
role="button" ><i class="glyphicon glyphicon-trash"> </i> Excluir</a>
现在,使用我们的 css class 在标签上连接点击事件。使用点击标签的 url 属性并将其用于您的 ajax 调用。例如,
$(function() {
$("a.del-btn").click(function(e) {
e.preventDefault();
var _this = $(this);
var url=_this.attr("href");
//use url for your ajax call.
$.post(url)
.done(function(res){
_this.closest("tr").remove();
});
});
});