2
我想使用JQueryUI對話框,以便我可以在內部Web應用程序中獲得一個漂亮的格式化確認對話框。我有一個事件監聽器附加到提交按鈕,然後將獲取數據並將其顯示在對話框中。 到目前爲止,我可以在對話框中得到它,它的格式很好,但它看起來好像提交操作正在傳播,而不是等待用戶選擇一個選項(確認或取消),即該對話框閃爍屏幕,然後在頁面處理提交操作時消失。使用JQuery UI對話框與提交按鈕
我可能錯過了一些小東西,但我不知道是什麼,任何人都可以幫忙嗎?我應該以某種方式添加stopProagation()函數嗎?提前致謝。
下面是我在做什麼(我希望代碼插入正確的)一個片斷:
var StripyTables ={
init: function(){
// hook into the Accept and Exit button
var acctUpdate = $("#finishShipment");
for (var i = 0, ii = acctUpdate.length; i < ii; i++)
{
$(acctUpdate).bind("click", StripyTables.finishListener);
}
},
finishListener: function(event){
var id = document.getElementById('session_id').value;
var url = 'http://'+window.location.hostname+'/truck/webServices/verifyCarr.svc.php';
var args = 'id='+id;
var retval = StripyTables.doAjax(url, args);
var len = retval.length;
if(retval==null || retval==""){
event.preventDefault();
}
else{
if(len<100){
event.preventDefault();
alert(retval);
}
else{
$('#dialog').html(retval);
var $dialog = $('<div></div>')
.html(retval)
.dialog({
autoOpen: false,
width: 700,
height: 350,
title: 'Final Detail for Route: '+id,
buttons: {
"Confirm Route": function() {
$(this).dialog("close");
// with a form with an ID of 'frm_processRoute', will this work?
$('#frm_processRoute').submit();
},
Cancel: function() {
$(this).dialog("close");
event.preventDefault();
}
}
});
$dialog.dialog('open');
}
},
doAjax: function(url, args){
var retVal;
retVal = $.ajax({
type: "GET",
url: url,
data: args,
async: false
}).responseText;
if(retVal==null || retVal=="")retval=99;
return retVal;
}
}
}StripyTables.init();
謝謝你的快速回復,但我的假設下,這個jQueryUI的確認對話框應的工作方式的JavaScript確認相同。那我一定是錯了。好吧,如果我添加event.preventDefault();在頂部,並且用戶確認對話框上的表單數據,我仍然需要允許提交功能工作(標準提交傳播流程) – radi8
@ radi8關於提交的正確性除了允許您必須調用'submit '。這就是答案。而且,jquery對話框不像確認對話框那樣沒有任何內置的返回數據(true/false)。你必須自己編程。 –
傑出,我可以做到!我在想,如果是這樣的話,或者我錯過了什麼。我將添加該功能,然後我們將很好去! – radi8