在我的JSF頁面中,我有一個帶有inputText,outputText和submit按鈕的隱藏表單。我正在使用一個腳本,它在某些事件中填充inputText並單擊該按鈕。該按鈕調用一個支持bean中的方法,在該支持bean中我需要執行一些操作,然後設置outputText的值。要做到這一點,我找到了UIOutput組件並設置了它的值。在我的javascript中,我需要在點擊按鈕後執行一些其他操作,但問題在於可能需要一些時間才能完成操作並使用返回值填充outputText。所以javascript中的下一個動作不會讀取正確的值。我想在outputText上添加一個更改事件,以便僅在更新值後執行我的操作,但我遇到與JS Events: hooking on value change event on text inputs相同的問題。將JS動作與JSF同步
回答
所以,如果你使用的是a4j:commandButton
,你可以使用oncomplete
屬性來完成AJAX請求後執行的一些JS代碼。
由於您使用的是h:commandButton
與f:ajax
,做到這一點的方法是使用的F:AJAX屬性onevent
,並檢查它是否成功是這樣的:
<script>
function doWhatever(e){
if(e.status == 'success'){
doYourThingHere();
}
}
</script>
<h:commandButton action="#{someMB.someAction}">
<f:ajax ... onevent="doWhatever" />
</h:commandButton>
如果您使用RichFaces,你可能要看看a4j:ajax
組件,請參閱this question。
更新:刪除不正確否則假定請求未成功。請參閱the answer to this question以查看狀態屬性的其他含義。
謝謝。這似乎解決了這個問題。 – user579674
「else」中的警報消息不完全正確。另見http://stackoverflow.com/questions/8570592/trigger-jsf-ajax-before-javascript/8574487#8574487 – BalusC
@BalusC你說得對,我要解決這個問題!感謝您指出! – elias
- 1. Raphael JS - 同步動畫
- 2. 異步動作+同步DBQuery VS同步動作+異步DbQuery
- 3. 分享js與jsf
- 4. 同步外部JS加載與zombie.js
- 5. 與THREE.js地球同步d3.js
- 6. Pesonal谷歌壓延同步與fullcalender JS
- 7. 節點js Mongodb findOne不工作同步
- 8. JS的setTimeout同步
- 9. 如何將生產流星js數據庫與開發同步?
- 10. 如何將客戶端JS與AWS lambda同步?
- 11. 與slideDown同步滾動
- 12. 將LDAP組與Wiki同步
- 13. 將NSFetchedResultsController與UITableView同步
- 14. 將Jena OntModels與bnodes同步
- 15. 同步變量動作
- 16. 動作 - 同步2聲道?
- 17. 動作T同步和異步
- 18. 同步(這)與同步(MyClass.class)
- 19. Oozie的>什麼是異步的動作和同步動作
- 20. JSF導航:從動作與參數
- 21. jsf使backing bean方法同步
- 22. EXT Js同步ajax請求
- 23. 同步節點js功能
- 24. JSF + Facelets將bean動作視爲屬性
- 25. 本地數據庫與同步適配器的自動同步
- 26. 與github同步
- 27. 與RestKit同步
- 28. JSF渲染JS
- 29. JS日曆+ JSF
- 30. JSF,HighCharts和JS
調用輔助bean中的方法的按鈕正在執行AJAX請求? – elias
是的。它調用backing bean中的方法。該方法更新outputText的值,並使用AJAX請求再次呈現outputText以獲取新值。 – user579674
也許你想爲AJAX按鈕使用'oncomplete'事件,那麼? – elias