使用WP AJAX和jQuery处理同一页面上的多个表单?

时间:2012-01-20 作者:Shoebox

我使用以下方法进行ajax调用:

wp_enqueue_script( \'my-ajax-request\', TAF_PLUGIN_URL . \'js/ajaxcf.js\', array( \'jquery\' ) ); 
wp_localize_script( \'my-ajax-request\', \'MyAjax\', array( \'ajaxurl\' => admin_url( \'admin-ajax.php\' ), \'postid\' => get_the_ID(),  ) );\\
在我的javascript文件中,我有一个非常简单的代码片段:

jQuery(document).ready(function($) {
    jQuery(\'.submit\').click(function(){
        var str = $("#ajaxForms").serialize();
        var data = {
            action: \'myajax-submit\',
            serialize: str,
        };

        jQuery.post(MyAjax.ajaxurl, data,  function(response) {
            alert(response);
        });
        return false;   
    });
});
对于我的html,我有:

<form id="ajaxForms">
    <label for="fname">First Name:</label>
    <input id="postID" name="postID" value="First Name" type="text"  />
    <input id="submit_button" class="submit" value="Send" type="button" />
</form>
一切似乎都很顺利,但我想在同一页上处理多个表单,例如主页有五个帖子,每个帖子都有我的表单(上面的html代码)。

当显示多个表单时,我会遇到冲突,这是由于jquery造成的,例如click函数有一个类。提交或。serialize()与其余的ID相同。

如何使用jQuery为每个表单提供唯一标识符,以避免冲突?

我希望我已经说清楚了。

亲切的问候

1 个回复
SO网友:Milo

这不是WordPress特有的,但我还是会回答:)

不要根据id来确定表单的目标,而是根据表单与单击的按钮的关系来确定表单的目标。更改:

var str = $("#ajaxForms").serialize();
收件人:

var str = $(this).parent().serialize();

结束

相关推荐

在加载jQuery之后加载Custom.js文件

我通过函数添加了一个javascript文件。php文件。我正在使用上建议的方法Wordpress Codex. 我的一个问题是,处理版本号列的最佳方法是什么。建议发送jquery版本还是我正在加载的脚本版本?使用此代码。<?php function my_scripts_method() { // register your script location, dependencies and version wp_register_script(\'custom_sc