您可以使用onclick
屬性在調用動作之前執行一些JavaScript代碼。
例如爲:
<h:commandButton ... onclick="document.body.style.background='pink'">
這可是最好用的<f:ajax>
onevent
屬性這一點,這樣就可以恢復更改:
<h:commandButton ...>
<f:ajax ... onevent="handleDo" />
</h:commandButton>
<img id="progress" src="progress.gif" class="hidden" />
與例如這裏面禁用/啓用按鈕,顯示/隱藏形象進度:
function handleDo(data) {
var status = data.status; // Can be 'begin', 'complete' and 'success'.
var button = data.source; // The HTML element which triggered the ajax.
var image = document.getElementById("progress"); // Ajax loading gif?
switch (status) {
case 'begin': // This is called right before ajax request is been sent.
button.disabled = true;
image.style.display = "block";
break;
case 'complete': // This is called right after ajax response is received.
image.style.display = "none";
break;
case 'success': // This is called when ajax response is successfully processed.
button.disabled = false;
break;
}
}
如果我也想重新呈現按鈕本身被禁用一次被點擊(+,同時操作方法執行)? – membersound
查看更新的答案。 – BalusC
感謝Balus,這真的很棒。按鈕的行爲如預期。無論如何,progress.gif隨時顯示。如何在按鈕被按下之前禁用它? – membersound