对 jQuery UI 对话框中的 ASP.NET 按钮单击事件进行故障排除
本文解决了一个常见问题:jQuery UI 对话框中的 ASP.NET 按钮无法触发其服务器端单击事件处理程序。 即使将对话框的 div 移动到表单中也无法解决问题。
理解问题
根本原因通常是 jQuery 代码中的关闭问题。 使用 jQuery("#dialog").dialog({...})
创建对话框时,表示对话框的 jQuery 对象被捕获在闭包内。 随后尝试操作对话框(例如 jQuery("#dialog").parent().appendTo(jQuery("form:first"))
)会失败,因为未引用正确的对象。
解决方案:正确的对象引用
解决方案涉及将 jQuery 对话框对象存储在闭包范围之外的变量中。这允许在创建对话框后继续访问和操作。 这是更正后的代码:
<code class="language-javascript">jQuery(function() { var dlg = jQuery("#dialog").dialog({ draggable: true, resizable: true, show: 'Transfer', hide: 'Transfer', width: 320, autoOpen: false, minHeight: 10, minWidth: 10, }); dlg.parent().appendTo(jQuery("form:first")); });</code>
通过将 jQuery 对象分配给 dlg
变量,对话框元素上的后续操作(包括对于回发功能至关重要的操作)将正确定位对话框,从而使服务器端按钮单击事件处理程序能够按预期运行。
以上是为什么我的 ASP.NET 按钮单击事件没有在 jQuery UI 对话框中触发?的详细内容。更多信息请关注PHP中文网其他相关文章!