Jquery 通过AJAX更新wordpress表单第二次不起作用
我已经使用设置api在wordpress中构建了一个主题选项页面。我想使用ajax更新页面上的表单。第一次它们似乎工作正常,但当我再次单击“提交”而不刷新页面时,整个页面只会给我一个“0”。 请注意,因为我使用wordpress native处理错误和验证,所以整个表单都使用AJAX重新加载。我知道这很奇怪,因为触发ajax请求的表单本身被重新加载。如果有解决方法,请告诉我。这是密码Jquery 通过AJAX更新wordpress表单第二次不起作用,jquery,ajax,wordpress,forms,wordpress-theming,Jquery,Ajax,Wordpress,Forms,Wordpress Theming,我已经使用设置api在wordpress中构建了一个主题选项页面。我想使用ajax更新页面上的表单。第一次它们似乎工作正常,但当我再次单击“提交”而不刷新页面时,整个页面只会给我一个“0”。 请注意,因为我使用wordpress native处理错误和验证,所以整个表单都使用AJAX重新加载。我知道这很奇怪,因为触发ajax请求的表单本身被重新加载。如果有解决方法,请告诉我。这是密码 $cg("#cgform").submit(function(){ var b = $cg(this).
$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_回调函数在div中填充接收到的表单
请告诉我处理此问题的“正确”方法。问题是事件处理程序绑定到由ajax调用重新加载的表单。第二次尝试提交表单时,实际上是第一次ajax调用插入的新实例,它没有附加事件处理程序。使用上的
方法绑定事件处理程序,这将在插入新表单时动态地将事件处理程序绑定到新表单
$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;
});
我试过这个,但现在连第一次都不行了。你的解释有道理,但解决方案似乎不起作用。请尝试更新版本。$cg
在我看来像是一个jquery对象,但我猜这是您对全局jquery对象的覆盖?是的,它是覆盖jquery(document).ready(function($cg)
,并且此更新也不起作用:(我正在阅读.on()的在线文档)他们没有像你那样使用它。但是他们的方式也不起作用。当你说它不起作用时,实际发生了什么?表单第一次提交时是否使用on
方法?是否检查了ajax请求插入的表单的HTML?它的id
属性是否实际设置为cgform
?忘了我以前写的东西吧。我没有做任何默认操作来阻止表单操作冒泡。我真蠢。你的方法在包含文档
后就像一个符咒。你能解释一下为什么我们需要添加这个吗?这也是一个很好的方法来调整我的表单吗?我在考虑安全性和速度