我有以下的jQuery代碼:jQuery的 - 等待確認對話框返回值
<script type="text/javascript" charset="utf-8">
$(function() {
initConfirmbinding();
$('#dialog').dialog({
autoOpen: false,
width: 'auto',
modal: true,
buttons: {
"Delete": function() {
$(this).dialog("close");
alert("You pressed OK!");
return true;
},
"Cancel": function() {
$(this).dialog("close");
return false;
}
}
});
function initConfirmbinding(){
// Dialog Link
$('.confirm').click(function(){
return $('#dialog').dialog('open'); // Here it doesn't stops for the return value!!
});
}
</script>
而這個其他代碼:
...
<c:foreach ...>
<h:commandLink styleClass="confirm" action="#{myBean.delete}">
<img src="/resources/images/delete-bw.png"/>
</h:commandLink>
<c/:foreach>
...
<!-- ui-dialog -->
<div id="dialog" title="Question" style="display: none;">
This item will be deleted, confirm?
</div>
我需要調用myBean.delete後用戶確認對話框,但它只是繼續,並使對話仍然打開呼叫。我如何使對話框返回一個同步值?所以commandLink可以知道它是否執行動作。
我知道它可以使用回調,但回調是不是因爲commandLink正在等待結果,以決定執行動作的選項,如果我使用回調我將需要直接調用commandLink.click會導致無限循環。
甚至認爲,想着再有可能是使用回調的方式,但我怎麼能發送到對話框其回調的時候,它的完成調用。
問候。
Hello Justing808,是的,它已經是一個模態對話框,問題出在'commandLink'上,它在** onclick **事件發生後繼續執行動作,而不是等待確認對話框的回答。 –