我使用jQuery UI dialog在單擊按鈕時顯示確認對話框。我想返回true
,點擊確定後,否則返回false
。使用JQuery UI對話框從確認對話框中返回值
onClick
(如給出的here,$dialog.dialog('open');
)事件的關聯對話框公開呼叫不起作用。所以,作爲一種解決方法,我採用了類似於以下的方法:http://www.perfectline.co.uk/blog/unobtrusive-custom-confirmation-dialogs-with-jquery。有這種做法和我之間有兩點不同:和
- 的例子使用錨標記,
- 它不使用jQuery UI的對話框。
我修改了示例鏈接中給出的代碼,但它不起作用。我想知道我做錯了什麼。有沒有更便宜的方法來做到這一點?
下面是代碼,所有的CSS/JS引用jQuery CDN,所以你應該能夠複製代碼來查看行爲。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/themes/blitzer/jquery-ui.css" rel="stylesheet" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/jquery-ui.min.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Control Panel</title>
</head>
<body>
<form action="http://google.com">
<button class="es-button ui-state-default ui-corner-all" name="changeSem" id="id2">Start Thermonuclear War</span>
</button>
</form>
<div title="Why so serious?" id="id3" style="display:none;">
<p>You are about to start a war.
<p>Click OK to confirm. Click Cancel to cancel this action.</p>
</div>
</body>
<script type="text/javascript">
$('#id2').click(function (event) {
if ($(this).data('propagationStopped')) {
//alert('true');
$(this).data('propagationStopped', false);
return true;
} else {
event.stopImmediatePropagation();
$('#id3').dialog({
//autoOpen: false,
width: 600,
buttons: {
"Ok": function() {
$(this).dialog("close");
$('#id2').data('propagationStopped', true);
$('#id2').triggerHandler(event);
},
"Cancel": function() {
$(this).dialog("close");
return false;
}
}
});
//alert('false');
return false;
}
});
</script>
</html>
澄清:請注意,這是很簡單的(見solution by bryan.taylor)做一個表單提交。我想在這裏做的是通過點擊按鈕模擬提交。更像是JavaScript的confirm()方法。
理想的情況下,這個例子應該帶你到谷歌確定關閉並做取消什麼。我會盡量避免顯式$(formName).submit()的解決方案。 – Nishant 2010-08-24 21:02:56
可能重複[jquery ui對話框需要返回值,當用戶按下按鈕,但不工作](http://stackoverflow.com/questions/6049687/jquery-ui-dialog-box-need-to-return-價值當用戶按下按鈕但不是沃爾) – Liam 2013-08-20 13:28:22