所以我有一個通過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中工作
- 3. PHP陣回聲不工作
- 4. PHP回聲不工作
- 5. PHP顯示filemtime不工作
- 6. JS不工作
- 7. js不工作
- 8. JS:不工作
- 9. JS巴貝爾回等待不工作
- 10. PHP陣列到JS不工作
- 11. Angular JS ng顯示不工作
- 12. Js顯示分區不工作
- 13. 純JS - 顯示:塊不工作
- 14. 減法工作在JS但加法不工作在JS
- 15. JS不在WP中工作
- 16. .replace在JS不工作
- 17. Project.json不工作在Cocos2d-JS
- 18. 在單擊JS不工作
- 19. PHP工作與JS Jquery
- 20. PHP的回報是工作,但開關後返回工作不
- 21. Js className不工作
- 22. JS toLowerCase()不工作
- 23. 角JS不工作
- 24. PHP標籤不工作/串不顯示
- 25. PHP回顯代碼不能正常工作
- 26. Php新手,回聲不工作?
- 27. PHP的回聲表不工作
- 28. PHP function_exists不工作,並返回false
- 29. 解析通過PHP,回聲不工作
- 30. PHP的回聲JavaScript的alert()不工作
一些代碼將是有益的 – 2012-07-30 08:15:26
JS行動可能需要重新綁定 – 2012-07-30 08:16:21
不要刪除形式,只是將其隱藏,直到你會獲得AJAX響應。如果沒有錯誤 - 只有刪除表格(如果它確實需要的話) – 2012-07-30 08:18:26