2013-05-09 50 views
0

我的下拉列表后面触发,当我使用这个指数的变化码,下拉列表不会触发指数变化的事件

$('#messagebox').show(); 

但不触发事件,当我用,

$.blockUI({message: $('#messagebox'), css: { width: '600px' } }); 

这里是我的标记为格在那里降下来就是,看起来像一个消息框

<div id="messagebox" style="display: none; cursor: default"> 
    <asp:DropDownList ID="ddl" runat="server" EnableViewState="true" AutoPostBack="true" OnSelectedIndexChanged="ddl_SelectedIndexChanged"/> 
</div> 

我怎样才能解决这个问题呢?

+0

你在哪里把这个jQuery能请你分享一些更多的代码细节? – AlokBhatt 2013-05-09 11:55:21

+0

你需要什么代码?它是我正在使用的一个插件,在这里http://www.malsup.com/jquery/block/ – Change 2013-05-09 11:55:53

+0

尝试在显示它之后将焦点设置到消息框。 '$('#messagebox')。focus();' – nunespascal 2013-05-09 11:55:55

回答

1

这很可能是因为blockUI将内容附加到body而不是form标签。如果Asp.Net控件位于form标签之外,它们将不会回发事件,因此当您使用javascript将元素附加到body时,经常遇到它。您很可能必须对BlockUI进行一些修改。

欲了解更多信息,看到这个答案:https://stackoverflow.com/a/7929700/1346464

编辑:

总结链接的答案(基于blockUI v2.59.0-2013.04.05,这是最新在写作时):

线319(搜索var layers) ,请将$('body')替换为$('form')

在行336(搜索$('html,body').css('height','100%');),将$('html,body')替换为$('html,body,form')

编辑2:

修复疏通:

在线路448(搜索els = $('body').children().filter('.blockUI').add('body > .blockUI');)与form取代的body两个实例。

+0

我在其他帖子上编辑了你的答案,因为它没有意义,请告诉我它是否正确 – Change 2013-05-09 13:43:04

+0

Twasn't我的回答,但我看不到任何无论如何编辑:) – Maloric 2013-05-09 13:46:32

+0

哦对不起,也许我不能编辑它,但他说太多“与”,也只能找到第一行 – Change 2013-05-09 13:48:57

-3
autopostbackproperty=true like below 

<asp:DropDownList ID="ddlName" runat="server" AutoPostBack ="true" 
    onselectedindexchanged="ddlName_SelectedIndexChanged" > 
</asp:DropDownList> 

protected void ddlName_SelectedIndexChanged(object sender, EventArgs e) 
{ 

} 
+0

那是什么?s – Change 2013-05-09 11:52:13

+0

他已经在控件上有'AutoPostBack =“true”'。 – DGibbs 2013-05-09 11:56:30

+0

需要正确阅读并理解问题和代码。 – Rahul 2013-05-09 11:58:01

0

我对jQuery blockUI不熟悉,但使用jQuery Dialog,它在显示时从表单中删除任何表单域。因此,当表单回传时,您无法访问它们。

使用jQuery对话框,您必须添加一些代码才能将字段添加回表单。我建议搜索,看看blockUI是否有相同的问题。

相关问题