从后面页面重新打开jquery模型对话框
本文关键字:jquery 模型 新打开 对话框 | 更新日期: 2023-09-27 18:16:26
我已经使用jquery和css,其中有一个登录表单的模态对话框。
CSS:#mask {
position:absolute;
z-index:9000;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0,0,0,0.8);
opacity:0;
display:none;
}
#boxes .window {
position:fixed;
width:440px;
height:200px;
display:none;
z-index:9999;
padding:20px;
}
/* Customize your modal window here, you can add background image too */
#boxes #dialog {
width:375px;
height:203px;
z-index: 99999;
background: #fff;
}
HTML (asp page):
<!-- #dialog is the id of a DIV defined in the code below -->
<a href="#dialog" name="modal">Simple Modal Window</a>
<div id="boxes">
<!-- #customize your modal window here -->
<div id="dialog" class="window">
<h5>Modal contents goes here</h5>
<!-- close button is defined as close class -->
<a href="#" class="close">X</a>
</div>
<!-- Do not remove div#mask, because you'll need it to fill the whole screen -->
<div id="mask"></div>
</div>
Jquery: <script type="text/javascript">
$(document).ready(function () {
//select all the a tag with name equal to modal
$('a[name=modal]').click(function (e) {
//Cancel the link behavior
e.preventDefault();
//Get the A tag
var id = $(this).attr('href');
//Get the screen height and width
var maskHeight = $(document).height();
var maskWidth = $(window).width();
//Set height and width to mask to fill up the whole screen
$('#mask').css({ 'width': maskWidth, 'height': maskHeight });
//transition effect
$('#mask').fadeIn(1000);
$('#mask').fadeTo("slow", 0.8);
//Get the window height and width
var winH = $(window).height();
var winW = $(window).width();
//Set the popup window to center
$(id).css('top', winH / 2 - $(id).height() / 2);
$(id).css('left', winW / 2 - $(id).width() / 2);
//transition effect
$(id).fadeIn(2000);
});
//if close button is clicked
$('.window .close').click(function (e) {
//Cancel the link behavior
e.preventDefault();
$('#mask, .window').hide();
});
//if mask is clicked
$('#mask').click(function () {
$(this).hide();
$('.window').hide();
});
});
</script>
现在,因为这是登录表单,我希望服务器端验证用户id和密码。如果验证失败,我希望从后面的页面重新打开这个对话框(使用c#)。现在我不知道该怎么做了。请给我一些帮助。
谢谢
试试这个
HtmlElement dialogLink = webBrowser.Document.GetElementById(dialogLinkID);
if (dialogLink != null)
{
dialogLink.InvokeMember("click"); // If invokemember does not work, try RaiseEvent("onclick")
}
在Javascript/jQuery中创建一个函数来执行任务。
function doMyTask(){
// do your task here
}
使用scriptmanager
从后面的代码调用这个javascript函数ScriptManager.RegisterStartupScript(this, this.GetType(), "functionToDoMyTask", "doMyTask();", true);
试试这个
在你的脚本中做一点改变
$(document).ready(function () {
//select all the a tag with name equal to modal
$('a[name=modal]').click(function (e) {
//Cancel the link behavior
e.preventDefault();
//Get the A tag
var id = $(this).attr('href');
openModal(id);
});
//if close button is clicked
$('.window .close').click(function (e) {
//Cancel the link behavior
e.preventDefault();
$('#mask, .window').hide();
});
//if mask is clicked
$('#mask').click(function () {
$(this).hide();
$('.window').hide();
});
});
function openModal(id) {
//Get the screen height and width
var maskHeight = $(document).height();
var maskWidth = $(window).width();
//Set height and width to mask to fill up the whole screen
$('#mask').css({ 'width': maskWidth, 'height': maskHeight });
//transition effect
$('#mask').fadeIn(1000);
$('#mask').fadeTo("slow", 0.8);
//Get the window height and width
var winH = $(window).height();
var winW = $(window).width();
//Set the popup window to center
$(id).css('top', winH / 2 - $(id).height() / 2);
$(id).css('left', winW / 2 - $(id).width() / 2);
//transition effect
$(id).fadeIn(2000);
}
创建一个全局方法openModal()
,可以从服务器端调用。
我假设你有一个asp按钮,它可以在它的c#代码(服务器端)上执行此操作
// Your button
<asp:Button runat="server" ID="btn" Text="Button" OnClick="clicked" />
protected void clicked(object sender, EventArgs e)
{
// If you don't have update panel
Page.ClientScript.RegisterStartupScript(
this.GetType(),
"key001",
"openModal('#dialog')",
true);
// If you have update panel
ScriptManager.RegisterStartupScript(
this,
this.GetType(),
"key001",
"openModal('#dialog')",
true);
}