我的对话框中的输入字段没有发布,我不确定原因...
我已经在mac firefox和safari以及windows IE和firefox上进行了测试,结果都是一样的,所以我不认为是浏览器的问题,如果我关闭对话框,字段也可以正常开机自检。
我已经重新阅读了jquery ui文档,找不到我做错了什么……该对话框似乎不太可能不支持输入。
以下是我使用的代码的精简版本:
<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>
没什么不寻常的,对吧?为什么这对我不起作用!?
谢谢!
发布于 2009-10-23 14:58:42
当JQuery打开该对话框时,它会将其移出窗体。
下面是解决这个问题的方法:
jQuery UI Dialog with ASP.NET button postback
基本上在你的情况下:
var dlg = $("#dialog").dialog({
autoOpen: false,
buttons: {
"OK": function() {
$(this).dialog('close');
}
}
});
dlg.parent().appendTo($("#yourformId"));
应该能修好它。
发布于 2013-12-15 08:17:59
我知道这是一个古老的问题,但是对于任何有同样问题的人来说,有一个更新、更简单的解决方案: jQuery UI 1.10.0中引入了一个"appendTo“选项
http://api.jqueryui.com/dialog/#option-appendTo
$("#dialog").dialog({
appendTo: "form"
....
});
发布于 2009-10-23 14:46:16
我非常确定jQuery UI会将对话框部分从其在dom中的正常位置中分离出来,然后将其移动到不同的位置。这将把您的输入元素从表单父元素中取出。不能在没有表单元素的情况下提交表单,这就是它失败的原因。
我建议将html重写为:
<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按钮不需要出现在弹出窗口中,那么您可以将其移出表单,仅在提交事件时捕获它的值,并在提交任何内容之前将其添加为隐藏的输入元素。
祝你好运。
https://stackoverflow.com/questions/1611687
复制相似问题