jQuery $('form')。serialize()在$('div.container')。load()之后不起作用

时间:2018-09-20 07:27:12

标签: jquery forms serialization jquery-selectors

我有一个包含div的页面,该页面通过AJAX调用进行了更新,如下所示:

<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),但内容不同。

如果我从Firefox的调试控制台中运行reload_container();,但是serialize()函数为空,但是$('#selectform')定义了。

但是我需要表格的内容。我不知道为什么$('#selectform')选择器在重新加载后能工作,但是serialize()没有。非常感谢您的帮助。

请注意,表单的输入中确实包含名称标签。 jQuery serialize not working不相关。

更新:绑定到容器中元素的事件在load()之后也不起作用。例如。 $('#newinfo').click(function(){alert('hi!'});在正文加载脚本中。但是,这可以通过jQuery .live() vs .on() method for adding a click event after loading dynamic html

解决

2 个答案:

答案 0 :(得分:0)

您应该在加载完成处理程序中执行代码。

{{1}}

在此处查看示例http://api.jquery.com/load/

答案 1 :(得分:0)

这似乎很好。您的Ajax处理程序中可能有问题。希望这个例子对您有所帮助。 还通过在输入元素上委派Nancy.Serialization.JsonNet事件作为示例。

如果需要帮助,请提供您的Ajax处理程序。

Blabla
Blubblub