Jquery联系表单提交后隐藏

时间:2013-06-25 15:53:16

标签: php jquery

我有一个联系表单,在页面加载时隐藏。然后,可以通过单击联系表单按钮查看联系表单,使其显示为slideUp和slideDown。问题是,当提交表单时页面刷新,如果有错误消息或成功消息,它被隐藏,因为页面已重新加载,您必须单击“联系表单”按钮才能看到它。我对jquery或php不太满意。任何帮助将非常感激。提交表单后,我需要显示消息。

网站为http://www.carlisleironing.co.uk/index.php

我的jquery是

$(document).ready(function () {
    $("#contactLink").click(function () {
        if ($("#contactForm").is(":hidden")) {
            $("#contactForm").slideDown("slow");
        } else {
            $("#contactForm").slideUp("slow");
        }
    });
});

3 个答案:

答案 0 :(得分:1)

添加以下内容(就在问题中的最后一个});之前):

if ($('#contactForm #error').size() > 0){
    $('#contactForm').slideUp('slow'); // or just .show();
}

测试#error元素是否存在,如果存在,则显示表单。我不确定你的成功消息是什么样的,但类似的测试也可以是一个。

至于其他答案:是的,你可以做一个AJAX提交,但是机会是(我在这里假设上下文)超出了这个问题的范围。这将涉及特殊请求处理和附加验证librar(y / ies)。

答案 1 :(得分:0)

您可以使用ajax提交表单并显示结果而无需重新加载页面:

$('form').submit(function() {
    $.post($(this).attr('action'), $(this).serialize(), function(data) {
        console.log(data);
    });
    return false;
});

答案 2 :(得分:0)

我假设当有人提交表单时,php页面会生成错误,但是用户无法看到它们,因为默认情况下页面加载时表单是隐藏的。

您可以为提交按钮命名。如果用户单击提交按钮,则会使用get或post请求发送按钮的值。然后,您可以更改php页面的行为,以便在提交表单时隐藏联系表单。

<input type="submit" name="theSubmitButton" value="Submit!" />

如果用户提交了表单,那么在php $_GET['theSubmitButton'](或$ _POST,如果您正在使用帖子请求)将被设置,如果不是这样,则不会设置。您可以使用isset( $_GET['theSubmitButton'] )来测试用户是否提交了页面并相应地更改了联系表单的类别。