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