3 回答
TA贡献1772条经验 获得超5个赞
您应该创建一个独立的函数来处理提交。并在您创建的每个表单中引用此函数。
function SubmitHandler (e) {
// Cleans the username
// var each_bond_request = $();
var raw_follower_username = $(e).find("#follower-username").text().trim();
var follower_username = raw_follower_username.replace("@","");
console.log("Follower username: ",follower_username);
$.ajax({
type: "POST",
url: "/accounts/user/" + follower_username + "/accept_request",
data:{
"follower_username" : follower_username,
},
success: function(data){
console.log(data);
M.toast({html: follower_username + ' started following you',classes: 'green'}, );
},
error: function(data){
console.log("All error data: ",data);
M.toast({html: 'Failure',classes: 'red'}, );
},
});
return false;
}
然后在您的模板中:
...
<form id="bond-request-accept-form" onsubmit="SubmitHandler(this)">
...
请注意,#follower-username 应该嵌套在 jQuery 的表单标签中以找到正确的标签。
TA贡献1804条经验 获得超3个赞
首先,我只想说我可能理解你的问题是错误的。如果是这样,请随时纠正我。
如果我理解这一点是正确的,那么根据发送请求的用户的不同,您有多个基本相同表单的副本,但略有不同。由于 ID 是唯一的,如果有多个实例,可能会导致 JavaScript 出现问题,因此我会将bond-request-accept-formID更改为类而不是 ID,并在 JQuery 中执行以下操作:
$(".bond-request-accept-form").toArray().forEach(function(elem){
$(elem).on('submit', function(){
// Logic to perform when the form is submitted
});
});
添加回答
举报