所以我有一個通過Ajax POST請求提交的表單。單擊發送按鈕後,表單將被刪除,並將處理圖形放在其位置。表單數據發送到我的PHP腳本,驗證,並且如果一切都檢出,則返回一個感謝信息以替換處理圖形。但是如果存在驗證錯誤,我會將整個表單的副本回顯到原始表單顯示錯誤出現在表單中的div處。這一切都工作正常,除非表單的副本回顯,JS的表單不起作用?發送按鈕的JS或輸入上的焦點/模糊功能都不起作用。感謝您的任何幫助。JS不工作在回顯PHP
回答
當您從DOM中刪除表單時,事件也會被取消。你可以有一個函數來設置這些事件,並在響應中有錯誤時調用它。
謝謝你的回答。我實際上已經有了和你一樣的想法並嘗試過了,但第一次沒有奏效。在閱讀完您的問題後,我意識到在將更改保存到我的代碼後,我可能沒有刷新瀏覽器。我再次嘗試了這個想法,刷新了瀏覽器,現在它工作得很好......感謝提醒我。 – 2012-07-30 08:28:22
您是否嘗試隱藏表單並顯示處理圖形而不是刪除表單?當你有錯誤時,隱藏圖形並再次顯示錶單。
使用此解決方案,錯誤處理將會更加困難,但您的項目中的兩個位置不會有您的表單!
不,我沒有試圖隱藏它。好主意,但。我沒有考慮這樣做。 – 2012-07-30 08:30:27
$.ajax({
url: 'mypage.html',
success: function(){
alert('success');
**<ADD YOUR CUSTOM CODE AFTER AJAX SUCCESS - JS CODE>**
},
error: function(){
alert('failure');
}
});
你也可以參考。 http://docs.jquery.com/Ajax_Events
$.ajax({
beforeSend: function(){
// Handle the beforeSend event
},
complete: function(){
// Handle the complete event
}
// ......
});
當您插入HTML混合的Javascript到一些節點,例如一個div,它是不一樣的服務也首次作爲整個文檔的一部分。插入爲innerHTML或某個文本節點時,不會將其視爲腳本。
您有幾種選擇:
**轉換的知名度和編碼錯誤響應(以JSON爲例)
創建2個的div,一個控股的形式,其他的處理圖像。
處理時將窗體切換爲無,窗體要遮擋。
當您處理完表單並且出現錯誤時,請以某種方式對其進行編碼(例如JSON)並將其發回,然後讓頁面上的EXISTING腳本解釋響應。
例如,您可以創建一些結構來保存每個formelementname以及與其關聯的錯誤,因此如果在每個可顯示錯誤的formelement旁邊創建一個空跨度,則可以在表單中輕鬆地突出顯示它們。
當答案從服務器到達時,可以再次顯示錶單,並顯示:none PROCESSING div。
**解讀你的回答(用JavaScript)
這是比較困難的,但也更優雅。 我曾經需要這個(從XHR請求返回的Javascript),並且Randy Webb以一種聰明的方式幫助我。
這裏解釋太多了。 閱讀本線程更詳細地介紹,並鏈接到蘭迪的腳本:
- 1. Onclick confirm()在PHP回顯時不工作
- 2. 在PHP回聲在PHP - 不工作
- 3. PHP不工作在js形式
- 4. 爲什麼不能這樣工作?在JS中迴應PHP
- 5. 返回功能不工作,但回聲在PHP中工作
- 6. PHP回聲不工作
- 7. PHP陣回聲不工作
- 8. PHP:回聲不工作
- 9. PHP顯示filemtime不工作
- 10. JS:不工作
- 11. JS不工作
- 12. js不工作
- 13. JS巴貝爾回等待不工作
- 14. 檢測回車鍵JS - 不工作
- 15. JS對象返回,但responseText不工作
- 16. 「../」(回目錄)的PHP不工作在Windows
- 17. 模態不會在PHP回聲工作
- 18. PHP包括不工作在回聲
- 19. PHP陣列到JS不工作
- 20. 純JS - 顯示:塊不工作
- 21. Angular JS ng顯示不工作
- 22. Js顯示分區不工作
- 23. 減法工作在JS但加法不工作在JS
- 24. Project.json不工作在Cocos2d-JS
- 25. JS不在WP中工作
- 26. .replace在JS不工作
- 27. 在單擊JS不工作
- 28. js不能在asp.net工作
- 29. .replace()在JS中不工作
- 30. Url.Action在JS不工作
一些代碼將是有益的 – 2012-07-30 08:15:26
JS行動可能需要重新綁定 – 2012-07-30 08:16:21
不要刪除形式,只是將其隱藏,直到你會獲得AJAX響應。如果沒有錯誤 - 只有刪除表格(如果它確實需要的話) – 2012-07-30 08:18:26