JQuery表单回调函数

3

我一直在苦恼一个我认为很简单的 JQuery 选择器问题,但我已经尝试了一段时间,似乎无法获得期望的结果。

我有一个包含多个 li 元素的无序列表,每个 li 都是一个隐藏 div 中表单元素的兄弟元素;因此,页面上有多个表单。不使用 ID 或附加类,我想能够在提交相应表单后“隐藏”或“slideUp”当前“隐藏”的 div 元素。

// 如果 (data == "感谢您的提交。代表将很快与您联系。") { '关闭包含 div 的表单' }

非常感谢任何帮助。可以在此查看网站和问题的实时版本:http://clients.jayjodesign.com/executive-council/staging/events.php


你能否发布一下你尝试过的示例代码? - ShankarSangoli
你能否发布一些用于网站的HTML和JS代码? - Kamran Ali
1个回答

2

当你在post方法的成功处理程序中使用$(this)时,它不会指向正在提交的form。你应该将this实例存储到本地变量中,然后在成功处理程序中使用它。尝试这样做:

$(".event-form").submit(function(event) {
                var $form = $(this);
        var action = $form.attr('action'),
            $fields = $form.serializeArray();

        $.post(action, $fields, function(data, textStatus, xhr) {

            alert(data);

            if(data == "Thank you for your submission. A representative will contact you soon."){

                $form.parent('div.right-column').slideUp();

            }

        });

        return false;
    });

嘿,Shankar,非常感谢你的帮助。哈哈,我知道我忽略了某些相当简单的东西。我想我这周在盯着这个项目看有点太久了。再次感谢你的关注。 - jayjo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接