【问题标题】:Clear form from referenced file after submit提交后从引用文件中清除表单
【发布时间】:2014-01-18 20:38:42
【问题描述】:

我有一个由单独文件中的 JQuery 脚本处理的表单,我想在用户单击提交后清除他们的输入。

$(document).ready(function() {
    var form = $('#assign_form'); // contact form
    var submit = $('#submit');  // submit button
    var alert = $('.alert'); // alert div for show alert message

    // form submit event
    form.on('submit', function(e) {
        e.preventDefault(); // prevent default form submit
        // sending ajax request through jQuery
        $.ajax({
            url: '/mySite/assign_form_submit.php', // form action url
            type: 'POST', // form submit method get/post
            dataType: 'html', // request type html/json/xml
            data: form.serialize(), // serialize form data 
            beforeSend: function() {
                alert.fadeOut();
                submit.html('Sending....'); // change submit button text
            },
            success: function(data) {
                alert.html("<p>The form assignment has been sent and you have been copied on the email.</p>").fadeIn(); // fade in response data
                form.trigger('reset'); // reset form
                submit.html('SUBMIT'); // reset submit button text
            },
            error: function(e) {
                console.log(e)
            }
        });
    });
});

我的 HTML 看起来像这样:

<form name="assign_form" id="assign_form" action="" method="post">

<input name="form_name" type="text">
<input name="email" type="text">

<div class="alert"></div>

<div id="submit_btn;">
    <button id="submit" type="submit">SUBMIT</button>
            &nbsp;&nbsp;&nbsp;&nbsp;
    <button id="reset" type="reset">CLEAR THE FORM</button>
</div>

当提交按钮被按下时,JQuery 会很好地处理表单。它不会刷新页面(这是我想要的),但我无法清除表单。任何帮助将不胜感激。

【问题讨论】:

    标签: jquery ajax


    【解决方案1】:

    将此添加到您的成功事件以重置表单

     $('#assign_form')[0].reset.click();
    

    请注意,这仅在表单中有重置按钮时有效。如果您删除重置按钮,那么您必须使用

     $('#assign_form')[0].reset();
    

    【讨论】:

    • 我替换了 form.trigger('reset');与你的建议,它没有工作,现在它不会重置提交按钮文本。
    • 那是因为你已经有了一个重置​​按钮。更改为 `$('#assign_form')[0].reset.click();` 我更新了我的答案以适应这两种情况。
    • 有没有人告诉过你你很聪明?谢谢!!
    【解决方案2】:

    尝试在表单上调用重置,而不是触发重置事件

    form[0].reset(); // reset form
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-25
      • 1970-01-01
      • 1970-01-01
      • 2012-01-31
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多