我的按钮lbtnInsert回发,当我在fancybox灯箱中没有显示我的表时单击它时工作正常。但是,当桌子显示在灯箱中时,该按钮不再起作用。 该按钮的代码隐藏永远不会被点击,我的Chrome控制台也不会显示脚本错误。
为什么?
<script type="text/javascript" language="javascript">
$(document).ready(function () {
$('#viewtaskdetail').trigger('click');
});
</script>
<a id="viewtaskdetail" title="Task details" href="#addnewitem">Try now</a>
<div id="addnewitem">
<table>
<tr>
<td><asp:Literal ID="Literal2" runat="server" Text="<%$Resources:glossary,title %>" /></td>
<td>
<asp:TextBox ID="tbTitle" runat="server" CssClass="textbox" MaxLength="100" ValidationGroup="inserttask" Width="400" />
<asp:RequiredFieldValidator CssClass="errortext" ID="fdgRequiredFieldValidator1" runat="server" ControlToValidate="tbTitle" Display="Dynamic" ErrorMessage="<%$Resources:Glossary,required %>" ValidationGroup="inserttask" />
</td>
</tr>
<tr>
<td>
<asp:Button ID="lbtnInsert" Text="<%$Resources:glossary,save %>" ValidationGroup="inserttask" CssClass="btn-primary" runat="server"/>
</td>
</tr>
</table>
</div>
更新
发现Fancybox与大多数JavaScript模式一样,将内容移动到dom的末尾以用于显示目的。如果您在内容区域中有表单元素,但表单外部,则在显示对话框后,元素不再是表单的子项。
仍不确定如何解决这个问题......
答案 0 :(得分:1)
我怀疑你需要将父设置为第一个表单,如下所示 -
$(".fancybox").fancybox({
parent: "form:first" // Your jQuery selector
});