我目前正在使用jquery popup overlay(https://github.com/vast-engineering/jquery-popup-overlay),效果非常好,但我注意到它有一个破坏网站的错误。
弹出窗口是在一个表单中设置的,但是jquery代码将它重新定位到代码的顶部,就在开始的body标签下面。
标准的html代码:
<div id="my_popup2">
<table border="0" cellpadding="0" cellspacing="0" class="blackbaroptions" >
<tr>
<td ><strong>Page Title:</strong></td>
<td ><input type="text" name="content_titlepage" class="pageTitlelong" value="<?php echo htmlentities($row_Recordset1['content_titlepage'], ENT_COMPAT, 'utf-8'); ?>" /></td>
</tr>
<tr>
<td ><strong> Description:</strong></td>
<td ><input type="text" name="content_description" class="pageTitlelong" value="<?php echo htmlentities($row_Recordset1['content_description'], ENT_COMPAT, 'utf-8'); ?>" /></td>
</tr>
<tr>
<td><strong>Keywords:</strong></td>
<td><input type="text" name="content_keywords" class="pageTitlelong" value="<?php echo htmlentities($row_Recordset1['content_keywords'], ENT_COMPAT, 'utf-8'); ?>" /></td>
</tr>
<tr>
<td></td>
<td><button class="my_popup2_close exturlclose" style="margin-top:5px;">Close</button></td>
</tr>
</table>
发射它的jquery:
$('#my_popup2').popup({
vertical:'top',
offsettop:60,
transition: 'all 0.3s',
autozindex: true,
color:'#000'
});
如果我注释掉开始和结束div标签,它会完美地提交给表单。但是当它像以前一样运行并且我在Chrome中检查元素时,它会将其转移到代码的最顶端。
因此,当用户点击提交时,它不会将其保留在表单中,也不会在其中提交数据。
有没有人知道如何解决这个问题,或者我是否可以将其替换为不会改变代码的那个?
答案 0 :(得分:1)
弹出窗口放置在它所在的位置,以便它可以绝对定位在所有元素上方。这不能改变。
您需要做的是挂钩弹出窗口中的一个事件(可能onclose
基于您所说的内容),然后将弹出窗口输入中的值传递给{中的隐藏字段{1}}。像这样:
form