我使用AJAX POST使用jQuery提交静态表单,它运行正常。
然而,在调用之后,我用第一个AJAX调用的结果替换了我的表单内部。之后,再次发布表单将无法正常工作。但是......为什么?
这是我的表格:
<form>
<div id="optionForm">
Just some SELECT menus
</div>
</form>
这是我发布表单并替换表单内部(使用一些SELECT菜单)的方法:
<script>
jQuery(document).ready(function() {
$("select").change(function() {
var data = $('form').serialize();
$.post("/test/Update.do", data, function(data) {
$("#optionForm").html(data);
});
});
});
</script>
答案 0 :(得分:1)
你的问题并不完全清楚,但我猜你所指的选择是在表格中?
$('select').change
只会将更改侦听器绑定到$('select')
执行时找到的元素。当您替换整个表单时,您将销毁旧选择并创建新选择,这些选择没有绑定到它们的任何侦听器。请改用委托事件:
$('#optionForm').on('change', 'select', function() {
// post...
});