在我的页面中我使用对话框小部件作为弹出窗口。弹出窗口包含一个drowdownlist(autopostBack:true).on selectedindexchanged弹出窗口自动关闭。请帮我避免这个。
<input type="button" id="opener" value="OPEN" />
<div id="dialog" title="Filters">
<asp:DropDownList ID="update_lb_name" runat="server" style="width:200px" AutoPostBack="true" OnSelectedIndexChanged="fvr_selectedIndex_changed" ></asp:DropDownList>
<input type="button" id="closer" value="CLOSE" />
</div>
jquery code:
<script type="text/javascript">
$(document).ready(function () {
$(function () {
$("#dialog").dialog({
autoOpen: false,
modal: true,
dialogClass: 'no-close',
draggable: false,
minWidth: 500
});
});
});
$("#opener").click(function () {
$("#dialog").dialog("open");
});
$("#closer").click(function () {
$("#dialog").dialog("close");
});
css代码:
<STYLE type="text/css">
.no-close .ui-dialog-titlebar-close {display: none }
</STYLE>
答案 0 :(得分:0)
在你的函数中使用 return false;
它将起作用。
$("#opener").click(function () {
$("#dialog").dialog("open");
return false;
});
或使用event.preventDefault();
,如下所示
$("#opener").click(function (event) {
$("#dialog").dialog("open");
event.preventDefault();
});
因为您使用autopostback的下拉列表为true。所以它会进行回发,你的弹出窗口将会关闭。
您需要在回发之前设置一些值,以便在回发后再次打开弹出窗口。
示例可以使用hidden filed
并在回发之前设置值,并使用此值再次打开弹出窗口。