[英]How do I pass the deleted row name from a grid in jQuery to controller(server-side) with ajax call
我在 jQuery 成功 function 中的网格中添加了一行,如下所示(编辑添加 Rob 和 Fleix 评论):
$(function() {
$('#MyGrid').delegate('a.remove', 'click', function() {
alert("del");
// e.preventDefault();
jQuery.ajax(
{
type: "POST",
url: "Upload/Remove",
data: "removefile=" + stringhtml// error console shows it as undefined
});
$(this).closest('tr').remove();
});
$("#uploadForm").ajaxForm({
iframe: true,
dataType: "xml",
url: "Upload/Index",
success: function(result) {
('#MyGrid tbody').append('<tr><td> ' + stringhtml+ ' </td><td><a href="#"
class="remove">Remove</a></td></tr>');
});
});
ajax 调用不是为了删除点击,而是在页面加载后点击。 如何通过 stringhtml 使 ajax 调用删除点击? 你们能不能帮帮我!
感谢您,
迈克尔德
绑定到删除链接的点击事件
$('#MyGrid').delegate('a.remove', 'click', function(e){
e.preventDefault();
$(this).closest('tr').remove();
});
将您的行 append 代码更改为
$('#MyGrid tbody').append('<tr><td> ' + stringhtml+ ' </td><td><a href="#" class="remove">Remove</a></td></tr>');
首先,更新您的“删除”链接,使其类似于:
<a href="#" onclick="remove(this.parentNode)">Remove</a>
然后像这样实现你的remove()
function :
function remove(node) {
node.parentNode.parentNode.removeChild(node.parentNode);
//equivalent: $('#MyGrid tbody')[0].removeChild(node.parentNode);
}
这是一个例子: http://jsfiddle.net/nNde4/5/
首先,避免使用内联 onclick 属性。 而是使用$(selector).bind('click', function(e){});
或$(selector).click(function(e){});
. 在您的情况下,实际使用live()
会更有意义,因为您不必一遍又一遍地附加每个事件。 所以使用以下应该可以工作:
$('#MyGrid a').live('click', function(e){
$(e.target).parent().parent().remove();
});
另请注意,您不必每次添加行时都调用它。 仅在创建表时(在加载等时)调用一次,它应该可以正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.