jquery - JQuery $('form').serialize() 在 $('div.container').load() 之后不起作用
问题描述
我有一个通过 AJAX 调用更新的 div 页面,如下所示:
<body>
<div id="container">
<div id="newinfo">
<form id="selectform">
Your name:<br>
<input type="text" name="firstname"><br>
</form>
</div>
</div>
<script>
function reload_container() {
$('#container').load('url/to/ajax/update');
console.log($('#selectform').serialize());
}
</script>
</body>
加载响应是相同的(包括表单 ID),但内容不同。
如果我reload_container();
从 Firefox 中的调试控制台运行,则该serialize()
函数为空,但$('#selectform')
确实已定义。
但是,我需要表格的内容。我不知道为什么$('#selectform')
选择器在重新加载后会起作用,但serialize()
不会。任何帮助深表感谢。
请注意,表单的输入确实包含名称标签。jQuery 序列化不起作用是不相关的。
更新:绑定到容器中元素的事件在 load() 之后也不起作用。例如$('#newinfo').click(function(){alert('hi!'});
在身体负荷脚本中。然而,这可以通过jQuery .live() 与 .on() 方法解决,用于在加载动态 html 后添加点击事件
解决方案
您应该在加载完成处理程序中执行您的代码。
$('#container').load('url/to/ajax/update', function() {
console.log($('#selectform').serialize());
});
在此处查看示例http://api.jquery.com/load/
推荐阅读
- jestjs - Jest 是否支持stealjs
- javascript - TypeError: $scope.lstLaptop.push 不是函数
- python - 如何使用 django(查询)在我的 html 中显示更多对象
- python-3.x - PySimpleGUI - 窗口更改时不显示背景
- c# - 如何使用互操作获取 xlsx 中的所有/全部工作表?
- java - 使用 JFileChooser 后 Java JSlider 未显示
- pyinstaller - 如何在 aix7.1 上安装 pyinstaller
- r - R:如何对数据框中的每一列应用一个复杂的函数,为每一列输出新的数据框?
- android - 如何防止键入文本的下划线以及所有大写字母?
- .net-core - .Net Core 项目似乎没有找到 SDK