首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否未发送Jquery UI对话框中的输入?

是否未发送Jquery UI对话框中的输入?
EN

Stack Overflow用户
提问于 2009-10-23 14:29:43
回答 5查看 29.6K关注 0票数 18

我的对话框中的输入字段没有发布,我不确定原因...

我已经在mac firefox和safari以及windows IE和firefox上进行了测试,结果都是一样的,所以我不认为是浏览器的问题,如果我关闭对话框,字段也可以正常开机自检。

我已经重新阅读了jquery ui文档,找不到我做错了什么……该对话框似乎不太可能不支持输入。

以下是我使用的代码的精简版本:

代码语言:javascript
复制
<script type="text/javascript">
 $(document).ready(function(){
  $("#dialog").dialog({
   autoOpen: false,
   buttons: {
    "OK": function() {
     $(this).dialog('close');
    }
   }
  });
  $("#publishSettings").click(function(){
   $("#dialog").dialog('open');
  });
 });
</script>

<form method="POST" action="publish.php">
 <input type="button" id="publishSettings" value="Publish Settings">
 <div id="dialog">
  Publish Date
  <input type="text" name="publishOn"><br>
  Unpublish Date
  <input type="text" name="unPublishOn">
 </div>
 <input type="submit" name="pubArticle" value="Publish">
</form>

没什么不寻常的,对吧?为什么这对我不起作用!?

谢谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-10-23 14:58:42

当JQuery打开该对话框时,它会将其移出窗体。

下面是解决这个问题的方法:

jQuery UI Dialog with ASP.NET button postback

基本上在你的情况下:

代码语言:javascript
复制
var dlg =  $("#dialog").dialog({ 
   autoOpen: false, 
   buttons: { 
    "OK": function() { 
     $(this).dialog('close'); 
    } 
   } 
  }); 
dlg.parent().appendTo($("#yourformId")); 

应该能修好它。

票数 34
EN

Stack Overflow用户

发布于 2013-12-15 08:17:59

我知道这是一个古老的问题,但是对于任何有同样问题的人来说,有一个更新、更简单的解决方案: jQuery UI 1.10.0中引入了一个"appendTo“选项

http://api.jqueryui.com/dialog/#option-appendTo

代码语言:javascript
复制
$("#dialog").dialog({
    appendTo: "form"
    ....
});
票数 10
EN

Stack Overflow用户

发布于 2009-10-23 14:46:16

我非常确定jQuery UI会将对话框部分从其在dom中的正常位置中分离出来,然后将其移动到不同的位置。这将把您的输入元素从表单父元素中取出。不能在没有表单元素的情况下提交表单,这就是它失败的原因。

我建议将html重写为:

代码语言:javascript
复制
<div id="dialog">
<form method="POST" action="publish.php">
 <input type="button" id="publishSettings" value="Publish Settings">
  Publish Date
  <input type="text" name="publishOn"><br>
  Unpublish Date
  <input type="text" name="unPublishOn">
 <input type="submit" name="pubArticle" value="Publish">
</form>
</div>

如果publishSettings按钮不需要出现在弹出窗口中,那么您可以将其移出表单,仅在提交事件时捕获它的值,并在提交任何内容之前将其添加为隐藏的输入元素。

祝你好运。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1611687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档