我使用设置api在wordpress中构建了一个主题选项页面。我想使用ajax更新页面上的表单。他们似乎第一次工作正常,但是当我再次单击“提交”而不刷新页面时,整个页面只给我一个“0”。 请注意,由于我使用wordpress native处理错误和验证,因此使用AJAX重新加载整个表单。我知道这很奇怪,因为重新加载触发ajax请求的表单。如果有解决方法,请告诉我。这是代码
$cg("#cgform").submit(function(){
var b = $cg(this).serialize();
var cgdata = { action : "cg_options_save", cgnonce: cgform.cgnonce ,data: b };
cg_ajax_request(cgdata,cg_form_callback);
return false;
});
//Ajax request
function cg_ajax_request(data,fcall){
$cg.post(ajaxurl, data, function (response) {fcall(response);});
}
cg_ajax_callback函数在div中填充接收到的表单。
请让我知道处理此
的“正确”方法答案 0 :(得分:2)
问题是事件处理程序绑定到由ajax调用重新加载的表单。第二次尝试提交表单时,它实际上是第一个ajax调用所插入的新实例,它没有附加事件处理程序。使用on
方法来绑定事件处理程序,这将在插入时将事件处理程序动态绑定到新表单。
$cg(document).on('submit', "#cgform", function(){
var b = $cg(this).serialize();
var cgdata = { action : "cg_options_save", cgnonce: cgform.cgnonce ,data: b };
cg_ajax_request(cgdata,cg_form_callback);
return false;
});