我使用jQuery.get()
请求来发送表单数据。但是在我的reloads/redirects
代码捕获并将表单数据发送到我需要的地方之前,页面JavaScript/jQuery
通常太快了。我使用alert()
来获取ajax请求,同时用户在警报上单击“确定”。现在我需要像往常一样(with PHP post and redirect)
使用表单,并使用jQuery或JavaScript BEFORE
页面reloads and NO alerts
发送表单数据。是否有任何优雅的方式使页面等待until jQuery is done
请求(without using alert)?
jQuery('#form').live('submit', function() {
var inputValue = jQuery(this).find('#theInput').val();
jQuery.get('http://someurl.com/order?var=' + inputValue);
//alert('an unwanted alert');
});
UPD:我通过Google跟踪代码管理器的iframe嵌入了jQuery代码。所以我无法改变表单的工作方式。而且我不应该阻止表单提交。
答案 0 :(得分:1)
jQuery('#form').live('submit', function(e){
e.preventDefault(); // prevent default behaviour
var inputValue = jQuery(this).find( '#theInput' ).val();
jQuery.get('http://someurl.com/order?var=' + inputValue, function(){
// redirect
});
//alert('an unwanted alert');
});
答案 1 :(得分:0)
我会看看[done
] [http://api.jquery.com/deferred.done/],这可能会做你想做的事情。 .done()将等待整个ajax完成,然后运行你在完成内调用的任何函数。
答案 2 :(得分:0)
您可以绑定回调以执行重定向和return false;
以防止默认重定向显示如下:
jQuery('#form').on('submit', function() {
var inputValue = jQuery(this).find( '#theInput' ).val();
jQuery.get('http://someurl.com/order?var=' + inputValue,
function(data){
//write redirect code here. In case if you want to check response, you can get it in data variable.
});
return false; //prevent default redirect action
});