[英]Wait till for completes using jQuery / Javascript
我如何才能使此代碼等待表單得到響應。 表單必須先提交才能遞歸,然后才能繼續收到遞歸的答復。
如果有一種方法可以確保有一個響應,那就有點像成功:或錯誤:
$("#pay_window").dialog({
autoOpen: false,
width: 600,
buttons: {
"Submit Payment": function(){
$("#PaymentForm").submit();
<--- NEED A WAIT FUNCTION HERE --->
var dialogbox = $(this);
$.ajax({
url: "/payment",
data: $(this).find([company_id, billing_email, first_name, last_name, recurly_token, selected_plan, account]).serialize(),
type: "POST",
success: function (data) {
dialogbox.dialog("close");
alert('Payment Completed')
},
error: function (jqXHR, textStatus, errorThrown) {
alert('error: ' + textStatus + ': ' + errorThrown);
}
});
return false;
}
}
});
表單提交與由表單的“ action”屬性指定的端點(或包含表單的頁面)的發布本質上是相同的。 您可以收集表單數據並發布(通過jQuery遞歸),然后使用jQuery的Deferred對象方法(“ then”,“ done”,“ fail”等)或使用$ .ajax和成功/錯誤選項...保證這在IE 7/8/9中不起作用(無法訪問FormData對象)。
考慮到這種相當簡單的形式:
<form id="foo" action="http://example.com/" method="POST">
<input type="hidden" name="q" value="a">
</form>
可以獲取輸入並創建一個“ FormData”對象:
var $foo = $('#foo'),
formData = new FormData($foo[0]),
$.ajax({
url: $foo.attr('action'),
data: formData,
type: "POST",
success: function (data) {
/* do what you want */},
error: function (jqXHR, textStatus, errorThrown) {
/* do what you've got to */ }
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.