昨天用到了 blockUI插件,很好用。界面需要登录的地方,用它锁住界面,然后弹个登录div出来。但是弹出的div中的textbox在服务器端取不到值。
搜索了一下,碰到这个问题的还不多,有一篇文章有些启发。
http://www.cnblogs.com/vason/articles/1396417.html
里面最关键的一句是:
$.blockUI()之后message中的内容居然是直接append到body下面的,跟form同一层级,也就是说,本来Button(也就是submit)是属于这个form的,现在被拿出来了,那当然失效!
这个提醒了我。
在提交服务器的时候,按钮的click事件中,加入$.unblockUI()也是没用的。原因是默认的 fadeOut 设置的是400,也就是说,等提交服务器后,这个unblockUI才将div还原到form下。
解决办法,确定按钮的OnClientClick 中加入$.unblockUI(),修改jquery.blockUI.js,将
// fadeOut time in millis; set to 0 to disable fadeOut on unblock
fadeOut: 400,
设置成fadeOut: 0,
就ok了