保持脚本中对话框的位置

时间:2012-10-31 12:24:08

标签: jquery html jquery-ui

我有一个表单,我希望显示一个带有对话框的部分。

但是,当我将表单内的div分配给对话框时,它将位于脚本的底部,而不再位于表单元素内部,因此我无法提交值。

像:

<form>
<div id="dialog_container"><input name="test"></div>
</form>
<script> $('#dialog_container').dialog();</script>

在这种情况下,div不会保留在表单标签中。

你会如何解决这个问题?

谢谢!

2 个答案:

答案 0 :(得分:1)

将标记放入对话框容器中,如下所示:

<div id="dialog_container">
    <form>
       <input name="test">
    </form>
</div>

修改

为什么不想将onChange事件添加到对话框中,然后将这些值以原始形式放入隐藏字段中,或者从对话框窗体中序列化json对象,然后将其放在隐藏字段中。

使用此css将该部分放入div:

#dialog_container {position:fixed;上:10px;左:10px;背景颜色:白色; display:none; }

用户点击打开对话框后,只需调用:$('#dialog_container')。show();

演示:http://jsfiddle.net/UpzSQ/5/

答案 1 :(得分:1)

我添加了同样的问题,我所做的是为每个对话框表单添加一个隐藏的输入。

然后在关闭对话框时,我可以用对话框中的值替换隐藏的输入。

类似的东西:

<div id="dialog_container">
  <form id="dialog_form">
    ... any input ...
  </form>
</div>

<form id="main_form">
  <input type="hidden" id="test">
</form>

和javascript之类的东西:

  $("#dialog_container").dialog({
    close: function(ev, ui) { 
         var dialogInput // build inputs from dialogInputs
                         // you can even mix former inputs with new ones
         $("#test").replaceWith( dialogInput  )
    }
  });