我正在尝试bing ajax:beforeSend,ajax:error和ajax:完成我的rails表单,它会被远程提交。
我尝试使用委托,绑定,直播等但我仍然面临同样的问题。
$('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();
});
我在页面上还有其他锚点链接,它们也会进行ajax调用,但是对于任何ajax调用都会调用“beforesend”函数。我想只为那个特定的表格打电话。
当我做警报时(event.target.id);在ajaxBeforesend里面,我看到了一个我没有绑定ajax调用的元素id
I am targeting only a specific form so how that before send be triggered for other links? Can anyone tell what is that i am doing wrong, Thanks.
NOTE: When i commented out the jquery_ui.js this behaviour stopped happening. Is is some conflict issue, Please help.
答案 0 :(得分:1)
您正在将您的表单绑定到可能发生的任何ajax调用,这意味着如果后台的其他内容可能正在使用ajax,则会触发您的调用,而不仅仅是针对您打算捕获的表单。
防止任何事情运行形式特定绑定的最好方法是,按下按钮(你没有包含的东西,但我假设你在表单上有一个按钮,操作提交)在按钮上执行此操作单击而不绑定到表单:
$.ajax({
type: 'POST',
url: url,
data: data,
beforeSend: function() {
call();
},
success: function(data) {
//something
},
error: function(xhr) { // if error occured
text();
},
complete: function() {
phone();
}
});
如果这没有帮助,请更新您的原始帖子以获取更多信息。我真诚地希望这会有所帮助。