我有一些表行,当按一行时,这些表行通过ajax get请求创建带有输入字段的边栏。侧边栏将有另一个ajax发布请求,该请求将在侧边栏中提交输入字段。
我遇到的问题是,如果用户在不同的表行上按一下,然后提交输入字段,它将为所有已按下的表行运行ajax调用,但只应为该行提交它目前“站立”着。
Ajax调用以创建带有输入字段的边栏:
var ajaxRequest = null;
$('.detailedTable tbody').on('click', '.tablerow', function() {
var somedata = $(this).attr('data-somedata');
ajaxRequest = $.ajax({
url:"/ajax/showAccountSidebar",
method:"GET",
data: {
somedata: somedata,
},
beforeSend:function() {
if(ajaxRequest != null) {
ajaxRequest.abort();
}
},
success:function(data) {
$('#sidemenu').html(data);
}
});
});
Ajax调用以在边栏中提交输入字段:
var sidebarRequest = null;
$(document).on('click', '#sidebarMenu', function() {
var someData = $("#someData").val();
sidebarRequest = $.ajax({
url:"/ajax/saveAccountNote",
method:"POST",
data: {
inputData: someData
},
beforeSend:function() {
if(sidebarRequest != null) {
sidebarRequest.abort();
}
}
});
});
答案 0 :(得分:1)
我遇到的问题是用来打第二个AJAX呼叫
$(document).on('click', '#sidebarMenu', function() {
将其更改为以下内容,现在仅提交我上次单击的输入字段:
$('#sidebarMenu').on('click', $(this), function() {