如果提交成功,我如何让div消失?

时间:2016-08-09 14:08:14

标签: javascript php jquery html

如果表单已提交并成功,则会显示一条警告说“#34;这是成功的"而不是我想让div消失..

JQuery的

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    scrollView.contentOffset = CGPointZero
}

HTML

$(document).ready(function() {
        $(":submit").click(function() {

            var name= $('#name').val();
            var email= $('#email').val();

            var varData= 'name=' + name + '&email' + email;
            console.log(varData);

            $.ajax({
                type: "POST",
                url: "form.php",
                data: varData,
                success: function() {
                    // needs changing
                    alert("It was success");
                }
            })

        });
    });

PHP

<div id="container.form">
                <hr>
                <label for="name">Name</label>
                <br>
                <input type="text" name="name" id="name" class="NewsLetter1" />
                <br>
                <label for="email">Email</label>
                <br>
                <input type="text" name="email" id="email" class="NewsLetter2" />
                <input type="submit" value="Submit">
                <hr>
</div>

4 个答案:

答案 0 :(得分:1)

这里有几个问题。

首先,您应该挂钩父submit()的{​​{1}}事件并使用form取消它。您当前的代码将忽略AJAX请求并以标准方式提交表单。

其次,您的查询字符串格式不正确 - 您错过了event.preventDefault()。最好的做法是将对象提供给= data属性,部分原因是为了这个原因(避免拼写错误),也因为jQuery会为你编码任何必需的字符。

要解决实际问题,请在您要隐藏的$.ajax上致电hide()fadeOut()。您需要转义div中的.,否则它将被解释为类选择器。试试这个:

id
<div id="container.form">
    <form method="post" action="form.php">
        <hr>
        <label for="name">Name</label><br>
        <input type="text" name="name" id="name" class="NewsLetter1" /><br>
        <label for="email">Email</label><br>
        <input type="text" name="email" id="email" class="NewsLetter2" />
        <input type="submit" value="Submit">
        <hr>
    </form>
</div>

答案 1 :(得分:0)

你可以替换它:

success: function() {
    // needs changing
    alert("It was success");
}

有了这个:

success: function() {       
    $('#container\\.form').hide();
}

答案 2 :(得分:0)

1)更好地使用&lt;形式&gt;元素,并使用事件onSubmit。这是真实的方式。

$("#formid").submit(function() {
    $.ajax({
        type: "POST",
        url: "form.php",
        data:  $("#formid").serialize(),
        success: function() {
            // needs changing
            alert("It was success");
        }
    })
})

答案 3 :(得分:0)

由于你的id属性中有一个点,并且点用于类过滤,你应该转义那个点:

success: function() {
     $('#container\\.form').hide();
}
相关问题