Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用AJAX提交动态创建的表单_Jquery_Ajax - Fatal编程技术网

Jquery 使用AJAX提交动态创建的表单

Jquery 使用AJAX提交动态创建的表单,jquery,ajax,Jquery,Ajax,我使用AJAX POST提交了一个带有jQuery的静态表单,效果很好 但是,在调用之后,我用第一个AJAX调用的结果替换了表单的内部。之后,再次发布表单将不起作用。但是为什么? 这是我的表格: <form> <div id="optionForm"> Just some SELECT menus </div> </form> 这就是我发布表单并用一些选择菜单替换表单内部的方

我使用AJAX POST提交了一个带有jQuery的静态表单,效果很好

但是,在调用之后,我用第一个AJAX调用的结果替换了表单的内部。之后,再次发布表单将不起作用。但是为什么?

这是我的表格:

    <form>
      <div id="optionForm">
        Just some SELECT menus
      </div>        
    </form>
这就是我发布表单并用一些选择菜单替换表单内部的方式:

<script>
    jQuery(document).ready(function() {
        $("select").change(function() {
            var data = $('form').serialize();
            $.post("/test/Update.do", data, function(data) {
                $("#optionForm").html(data);
            });
        });
    });
</script>

你的问题并不完全清楚,但我猜你所指的选择在表格中

$'select'。更改将仅将更改侦听器绑定到执行$'select'时找到的元素。替换整个表单时,会销毁旧的选择并创建新的选择,这些选择没有绑定任何侦听器。请改用委派事件:

$('#optionForm').on('change', 'select', function() {
    // post...
});

顺便说一句:我宁愿选择带有$this的表单。最接近的'form'这是select,而不仅仅是$form'。如果你的页面上有多个表单呢?谢谢你的建议,西蒙!