gpt4 book ai didi

javascript - 如何将数据传递给 jquery done()?

转载 作者:行者123 更新时间:2023-11-30 13:06:46 25 4
gpt4 key购买 nike

我有一个显示多条记录的页面,我正在尝试编写一个点击处理程序来负责通过 ajax post 提交对单个记录的更改。我正在使用 done()、fail() 和 always() 来管理结果。

当 ajax 调用返回时,我想对提交的记录进行一些更新——例如放置一条已保存的消息,重新启用该记录的提交按钮,等等——但除非我知道所提交的特定记录的 ID,否则我不能这样做。

我想做的是将目标记录的 ID 传递到 done() 中,以便 done() 中的代码可以对最初调用它的记录进行必要的更改。

这是我的代码,它显示了我在做什么,但它不起作用,因为变量 target_id 在这些函数中没有值。我如何将该变量传递给那些函数?

$("#container").on("click", ".save-button", function(e) {

if ($(this).hasClass('disabled')) {return;}

var button_html = $(this).html();
$(this).html('Please wait...');
$(this).addClass('disabled');

var target_id = $(this).parents(".record-form").find("#record-id").val();

var form_poster = $.post("user_form_submit.php", target_form.serialize());

form_poster.done(function(response_object) {

var result = response_object['result'];

if (result=='success') {
var alert_area = $("#" + target_id + " .alert-area").html("Record Updated");
} else {
var alert_area = $("#" + target_id + " .alert-area").html("Record Not Found");
}

});

form_poster.fail(function() {
var alert_area = $("#" + target_id + " .alert-area").html("An Error Occurred");
});

form_poster.always(function() {
$("#" + target_id + " .save-button").removeClass('disabled');
$("#" + target_id + " .save-button").html(button_html);
});

});

最佳答案

这应该有效,我认为问题出在您的 id 属性上,它们必须是唯一的。这整行:

var target_id = $(this).parents(".record-form").find("#record-id").val();

可能只是:

var target_id = $("#record-id").val();

但我猜你有几个元素的 id record-id,你应该改用一个类。

关于javascript - 如何将数据传递给 jquery done()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15398230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com