我有一个div,里面有一个表单,设置为使用ajax发布并像这样返回div中的结果
$(document).ready(function(){
$("#guestList").validate({
debug: false,
submitHandler: function(form) {
// do other stuff for a valid form
//$('form').attr('id', 'guestList1')
$.post('brides_Includes/guestlistDisplay1.php', $("#guestList").serialize(), function(data) {
$('#results').html(data)
$("form#guestList")[0].reset();
});
}
});
});
返回结果后,它会显示正确的更改并替换表格。但是,当我再次发布表单时。相关的更改将按原样进行,但随后也会刷新页面并在地址栏中显示已发布的信息
我如何发布表单并替换它,以允许它再次发布并调用脚本而不发生这种情况?
最佳答案
使用ajax返回表单的问题在于,页面上已有的任何JavaScrip代码都不会看到/利用新表单。解决此问题的最佳方法是使用ajax将JavaScrip和HTML传递回去。
基本上,每次将新表单传递回时,您都将以下代码传递回去。您需要更新ID
和链接(brides_Includes/gueSTListDisplay1.php)。您还需要用此代码替换主页上的代码,因为执行返回的任何JavaScrip都需要使用此代码。
<script type="text/javascript">
$(document).ready(function(){
$("#guestList").validate({
debug: false,
submitHandler: function(form) {
// do other stuff for a valid form
//$('form').attr('id', 'guestList1')
$.post('brides_Includes/guestlistDisplay1.php', $("#guestList").serialize(), function(data) {
$('#results').html(data);
//This executes the JavaScript passed back by the ajax.
$("#results").find("script").each(function(i) {
eval($(this).text());
});
$("form#guestList")[0].reset();
});
}
});
});
</script>
关于php - 用Ajax提交表单,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14548042/