Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 通过AJAX更新wordpress表单第二次不起作用_Jquery_Ajax_Wordpress_Forms_Wordpress Theming - Fatal编程技术网

Jquery 通过AJAX更新wordpress表单第二次不起作用

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).

我已经使用设置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_回调函数在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
?忘了我以前写的东西吧。我没有做任何默认操作来阻止表单操作冒泡。我真蠢。你的方法在包含
文档
后就像一个符咒。你能解释一下为什么我们需要添加这个吗?这也是一个很好的方法来调整我的表单吗?我在考虑安全性和速度