保留在表单中的JQuery Div弹出窗口叠加层

时间:2014-03-05 10:15:05

标签: jquery html

我目前正在使用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中检查元素时,它会将其转移到代码的最顶端。

因此,当用户点击提交时,它不会将其保留在表单中,也不会在其中提交数据。

有没有人知道如何解决这个问题,或者我是否可以将其替换为不会改变代码的那个?

1 个答案:

答案 0 :(得分:1)

弹出窗口放置在它所在的位置,以便它可以绝对定位在所有元素上方。这不能改变。

您需要做的是挂钩弹出窗口中的一个事件(可能onclose基于您所说的内容),然后将弹出窗口输入中的值传递给{中的隐藏字段{1}}。像这样:

form