gpt4 book ai didi

javascript - ajax:beforeSend 在任何 ajax 调用上被触发

转载 作者:行者123 更新时间:2023-12-03 07:25:35 26 4
gpt4 key购买 nike

我正在尝试将 ajax:beforeSend、ajax:error 和 ajax:complete 绑定(bind)到远程提交的 Rails 表单。

我尝试使用委托(delegate)、绑定(bind)、实时等,但我仍然面临同样的问题。

$('form#contact_form').bind('ajax:beforeSend', function(evt, xhr, settings) {
//getItemIds(); added this call on button click
call();
})
.bind('ajax:error', function(event, request, settings) {
text();
})
.bind('ajax:complete', function(event, request, settings) {
phone();
});

我在页面上还有其他 anchor 链接,它们也进行 ajax 调用,但对于任何 ajax 调用,都会调用表单“beforesend”函数。我只想为该特定形式调用它。

当我执行警报时(event.target.id);在 ajaxBeforesend 中,我看到一个我尚未绑定(bind) ajax 调用的元素 id

我仅针对特定表单,那么在发送之前如何触发其他链接?谁能告诉我我做错了什么,谢谢。

注意:当我注释掉 jquery_ui.js 时,此行为停止发生。这是一些冲突问题,请帮忙。

最佳答案

您将表单绑定(bind)到可能发生的任何 ajax 调用,这意味着如果后台中可能使用 ajax 的其他内容会触发您的调用,而不仅仅是您打算捕获的表单。

防止任何内容运行特定于表单的绑定(bind)的最佳方法是,在单击按钮时(您没有包含的东西,但我假设您在表单上有一个按钮可以操作提交)在按钮上执行此操作单击但不绑定(bind)到表单:

$.ajax({
type: 'POST',
url: url,
data: data,
beforeSend: function() {
call();
},
success: function(data) {
//something
},
error: function(xhr) { // if error occured
text();
},
complete: function() {
phone();
}
});

如果这没有帮助,请使用更多信息更新您的原始帖子。我真诚地希望这会有所帮助。

关于javascript - ajax:beforeSend 在任何 ajax 调用上被触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36019130/

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