Javascript 如何使用jQuery重置表单?

Javascript 如何使用jQuery重置表单?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个联系人表单,我正在尝试在提交后自动重置。 我在这里看到过一些关于重新设置或清理表单的帖子 我已经试过好几次了,但我不知道该在哪里发布代码 这就是我的代码: $.ajax({ type: 'POST', url: 'sendmessage.php', data: $("#contact").serialize(), success: function(data) { if(data == "true") { $("#c

我有一个联系人表单,我正在尝试在提交后自动重置。 我在这里看到过一些关于重新设置或清理表单的帖子

我已经试过好几次了,但我不知道该在哪里发布代码

这就是我的代码:

$.ajax({
    type: 'POST',
    url: 'sendmessage.php',
    data: $("#contact").serialize(),
    success: function(data) {
        if(data == "true") {
            $("#contact").fadeOut("fast", function(){
                $(this).before("<p> <strong>Success! Your request has been sent. We will respond to it as soon as possible. </strong></p>");                            
                   setTimeout("$.fancybox.close()", 3000);  

但是我尝试放置代码的所有位置都不起作用…

您可以获取该表单中的所有子“输入”标记和“文本区域”,并清除值

$('#contact').find('input[type=text], textarea').attr("value", "")

我希望这就是您提出的问题,我制作了一个小JSFIDLE(远不是智能的或优化的),它可能对您有用

在我的例子中,使用
$('#contact')[0]重置表单就像你提到的,但是你可以看到我在哪里使用它,并在它之后构建你的解决方案

HTML

提交
再次展示形式
JS/jQuery
$(“#btnsupmit”)。在(“单击”,函数(){
$(“#触点”)。淡出(“快速”,功能(){
$(“#联系人”)[0]。重置();
$('#btnSubmit').hide();
$(此)。之前(“

成功!您的请求已发送。我们将尽快响应。”; setTimeout(函数(){ $('#msg').fadeOut(); $(“#btnShowForm”).fadeIn(); }, 3000); }); }); $(“#btnShowForm”)。在(“单击”,函数(){ $(“#联系人”).fadeIn(); $(“#btnSubmit”).fadeIn(); $(this.hide(); });

JSFIDLE

表格中是否有
#contact
?您的重置代码应该可以工作。如果隐藏表单本身,则可能是
fadeOut
导致了问题,但我不记得fadeOut是否确实删除了元素“它不工作”是什么意思?JavaScript控制台中是否有错误消息?什么是
reset
?清空任何值的所有输入,或者在用户编辑它们之前重置为原始表单?如果是最后一个,一个像
这样的简单按钮就可以了。@helion3不,它不会删除元素。它只是得到一个显示:最终没有。来自jQuery文档:“.fadeOut()方法设置匹配元素的不透明度的动画。一旦不透明度达到0,显示样式属性设置为无,因此元素不再影响页面的布局。”尽管此代码段有点不完整,但此方法仍然有效,尽管使用此代码段的任何人都需要知道,如果表单字段最初为非空,则此方法的效果不同于
reset
。这正是他试图实现的目标:
$('#contact').find('input[type=text], textarea').attr("value", "")
<form id="contact" action="">
    <input type="text" name="foo" />
    <input type="text" name="bar" />    
</form>

<button id="btnSubmit">Submit</button>
<button id="btnShowForm" style='display:none'>Show form again</button>
$("#btnSubmit").on("click", function () {

    $("#contact").fadeOut("fast", function () {
        $("#contact")[0].reset();
        $('#btnSubmit').hide();

        $(this).before("<p id='msg'> <strong>Success! Your request has been sent. We will respond to it as soon as possible. </strong></p>");

        setTimeout(function () {

            $('#msg').fadeOut();            
            $("#btnShowForm").fadeIn();
        }, 3000);

    });
});

$("#btnShowForm").on("click", function () {
    $("#contact").fadeIn();
    $("#btnSubmit").fadeIn();
    $(this).hide();    
});