您好我想在使用Drupal表單API的下拉列表中使用Ajax。問題是我想阻止用戶在來自服務器的Ajax響應返回之前提交表單。當選擇列表狀態被改變並且服務器響應請求時,如何禁用提交按鈕或阻止任何其他用戶操作。 旁邊我用一個簡單的表單,其中ajax已經連接到組合框選擇列表如何防止在等待時間內提交表單在drupal中響應7
1
A
回答
5
阿賈克斯Drupal有一個名爲.ajaxStart
公共方法你可以做一個
jQuery('#form_id').ajaxStart(function(){ //Here you prevent shit });
並且還擁有一個名爲.ajaxSuccess爲完成動作
0
jQuery允許您在AJAX調用完成後運行代碼。當組合框更改時,您可以禁用您的元素,然後啓用success
上的所有內容。以下是我從jQuery.ajax() Docs獲得的一個示例。
$.ajax({
url: 'ajax/test.html',
success: function(data) {
$('.result').html(data);
alert('Load was performed.');
}
});
0
它只是一個技巧,你應該使用,以防止在Ajax加載期間提交。 在ajax加載過程中,只需禁用提交按鈕並在成功時啓用它。 就像是: 假設提交按鈕的id是:submit_button,然後
$("#submit_button").attr("disabled", "disabled");
$.ajax({
url: 'html-data/demo.html',
success: function(data) {
$('#resultDiv').html(data);
$('#submit_button').removeAttr("disabled");
}
});
上面的代碼是在jQuery中,它會在Drupal工作。 檢查它。
0
設置一個全局標誌
var flag = true;
然後在你的AJAX之前,您的帖子設置標記,以虛假
flag = false;
由於你的成功的部分功能
flag = true;
,然後您的提交按鈕
onclick="return(if(flag));"
0
這裏的方法是我對它
$(document).ajaxComplete(function(){
// the code to be fired after the AJAX is completed
$('#edit-submit').removeAttr("disabled");
});
$(document).ajaxStart(function(){
event.preventDefault();
$("#edit-submit").attr("disabled", "disabled");
});
相關問題
- 1. 如何防止用戶在等待Ajax響應時的交互
- 2. 如何防止在輸入時提交表單提交
- 3. 如何防止在angularjs中單擊按鈕時提交表單?
- 4. 如何防止在重新提交表單時重新提交表單?
- 5. 在等待響應時阻止函數
- 6. Drupal 7的如何防止多個表單提交(服務器端)
- 7. 如何在提交表單之前在jquery中等待?
- 8. Emacs在等待很長時間後在ssh上停止響應
- 9. 防止在登錄時提交重複表單提交
- 10. jquery使表單提交等待函數調用的響應
- 11. 如何禁用Drupal表單提交按鈕以防止雙擊提交?
- 12. 如何在提交表單時防止iPad鍵盤死機?
- 13. 如何在提交表單時防止頁面刷新?
- 14. 如何防止重複表單提交
- 15. 如何防止表單提交默認?
- 16. 如何防止表單提交JQuery
- 17. 防止表單提交
- 18. jquery防止表單提交
- 19. jquery防止表單提交
- 20. 防止表單提交PHP
- 21. jquery:防止表單提交
- 22. 防止在jQuery表單上提交
- 23. 當VI在屏幕上等待提交消息時,如何停止Git提交?
- 24. 防止jQuery驗證插件在提交表單時提交表單
- 25. 在線提交每週時間表。 (Drupal?)
- 26. 如何防止在Yii2中提交多個表單?
- 27. 如何防止表單在jQuery中提交行爲?
- 28. 如何防止輸入值在表單中提交?
- 29. 如何防止在grails中遠程提交表單?
- 30. 如何防止在引導彈出窗口中提交表單?
你的意思是說,你已經選擇哪個工作作爲AJAX選擇器,並且你想禁用可能性y在AJAX加載時提交表單? – 2011-12-22 12:11:27
是的,這是真的 – user435245 2011-12-25 13:26:55