jquery .serialize()不适用于动态加载的表单

Mar*_*k W 4 html javascript jquery

我有一个表单,通过图像点击触发的ajax提交,表单提交后返回并重新加载.但是.serialize()已停止工作.

这是一些代码:

<form id="myForm" action="/someFormSubmitPage.do">
    <div id="myFormQuestions">
        <input type="text" name="fred"/>
        <!--more inputs-->
    </div>
 <img id="submitButton" src="some/path">
</form>
Run Code Online (Sandbox Code Playgroud)

提交按钮的图像通过jquery中的.click触发以下函数

var serializedForm = $("#myForm").serialize();
$.post("/someFormSubmitPage.do", serializedForm, function( data ) {
    //do some stuff with the data
    $( "#myFormQuestions" ).html(data);
});
Run Code Online (Sandbox Code Playgroud)

这在第一次提交时工作正常,但在第二次提交时,尽管用户重新填充输入,但var序列化表单最终仍为空字符串

编辑: 我现在已经包含了一个JSFiddle,但是,我不知道如何使用ajax测试回声的东西.

dev*_*Rew 8

你能看看回复的回复吗?因为我认为这是DOM元素识别的问题.问题可能是这样的:

你有两个匹配$('#myForm')选择器的元素,jQuery丢失了.尝试使用修改此选择器$('form#myForm').尝试一下,然后在这里发布您的回复.

现在,我已经检查过它是否正常工作,代码是:

<div>
    <form id="myForm">
        <div id="inputs">
            <input name="some" type="text" />
        </div>
        <input type="button" id="my-form-submit" value="submit" />
    </form>

</div>
<script type="text/javascript">
    $('input#my-form-submit').on('click', function(e) {
        var data = $('form#myForm').serialize();
        $.post('/test.php', data, function(response) {
            $('div#inputs').html($(response).find('div#inputs'));
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

这样做工作正常,每次提交页面发布到自己,然后在响应中搜索输入并将输入放入表单输入目录.