【发布时间】:2015-07-03 01:07:16
【问题描述】:
我想使用 jquery ui(对话框)自动创建一个隐藏的输入标签。它正在正确执行。但结果无法应用于html页面。
我设计了一个按钮来调用对话框,像这样:
<input id="btn" type="button" value="Click me" />
<div id="dialog-box" title="My dialog">
<span>Any text here...</span>
</div>
和一个div 来存储结果:
<div class="result">
</div>
我的脚本代码是:
function myFunction()
{
$(".result").append("<input id=\"CategoryId\" type=\"hidden\" value=\"abc\" />");
$("#dialog-box").dialog("close");
}
$("#dialog-box").dialog({
autoOpen: false,
height: 100,
width: 250,
modal: true,
buttons: {
"Ok": myFunction,
"Cancel": function () {
$("#dialog-box").dialog("close");
}
},
close: function () {
}
});
$("#btn").click(function () {
$("#dialog-box").dialog("open");
});
当我查看页面源代码时,没有创建任何内容。我已经通过将这一行放入 myFunction() 对其进行了测试:alert("Category id: " + $("#CategoryId").val());
它向我展示了结果:Category id: abc
但页面源上的div 仍然是:
<div class="result">
</div>
我已将这些行粘贴在顶部:
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
你能告诉我为什么以及如何解决它吗?谢谢!
【问题讨论】:
-
如何检查没有添加? HTML 源代码没有更新,因为这是返回服务器的内容,而不是反映客户端所做的任何更改。要检查它,请改为在浏览器中检查元素。也就是说,注意 ID 在文档上下文中必须是唯一的,如果多次单击对话框
ok按钮,您的逻辑可能会带来无效的 HTML 标记
标签: javascript jquery jquery-ui