我在ASP.Net上使用Bootstrap。
我尝试在我的按钮上添加确认信息,以便只有在显示提示消息框后点击是时才会执行代码。
<link href="_JS/jquery.modal.css" type="text/css" rel="stylesheet" />
<link href="_JS/jquery.modal.theme-xenon.css" type="text/css" rel="stylesheet" />
<link href="_JS/jquery.modal.theme-atlant.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="_JS/jquery.modal.min.js"></script>
<!--......-->
<a href="#" runat="server" id="confirm" onserverclick="confirm_ServerClick1">Confirm</a>
<!--......-->
<script type="text/javascript">
$(document).ready(function (e) {
$('a#confirm').click(function () {
modal({
type: 'confirm',
title: 'Confirm',
text: 'Are you sure you want to remove the user from the company?',
if (result) {
//Proceeds to activate event in code behind - confirm_ServerClick1
} else {
BootstrapDialog.closeAll();
}}
});
});
});
</script>
有可能吗?如果是这样,我会感激任何提示。
截至目前,它只是执行忽略JS功能的confirm_ServerClick1事件 - 而不显示任何模态弹出窗口。
答案 0 :(得分:2)
您需要在JS函数中返回true或false。 False表示停止执行,false表示继续执行服务器。
$('#confirm').click( function() { your_code_here; return false; // or true. the result from your popup } );
$(document).ready(function (e) {
$('a#confirm').click(function () {
modal({
type: 'confirm',
title: 'Confirm',
text: 'Are you sure you want to remove the user from the company?',
if (result) {
//your logic here
return true;
} else {
BootstrapDialog.closeAll(); return false;
}}
});
});
});
修改强>
请参阅以下示例以获取默认的JS确认。 (JS Confirm将阻止执行,直到从对话框中收到结果)。在你的情况下,bootstrap弹出窗口不会阻止执行,你需要根据你从弹出窗口收到的结果从JS调用服务器端事件。
如果结果为true,则调用服务器端方法,如document.getElementById("CliendId").click()
或使用__doPostBack
<a href="#" runat="server" id="confirm" onclick="return confirmEvent();" onserverclick="confirm_ServerClick1">Confirm</a>
<!--......-->
<script type="text/javascript">
function confirmEvent()
{
if(confirm("Are you sure?"))
{
alert("This will execute server side event");
return true;
}
else
{
alert("I'm not sure!");
return false;
}
}
</script>