想要在没有页面重新连接的情况下自动刷新表单

时间:2018-06-13 05:32:54

标签: javascript jquery html forms

我有一个Ask Question表格,客户可以向我们提出任何问题。当客户提交表单时,我们会在5秒内给他一封感谢信息,然后隐藏邮件并再次显示该div中的Ask Question表单。

但是,在成功发送消息之后,表单输入值仍然存在。在提交之前,我想要一个没有任何输入值的新鲜事物,如表格。

Fill the form for asking a question

Give thanks message after successfully submitted

Auto new form comes after shown successful message for 5 seconds. But still the previous input values there

这是我的ajax代码

$.ajax({

            url:"{{ url('/ask_question_form') }}",
            type: 'GET',
            data: {_token :token, name : name, email : email, contact : contact, question : question},
            success:function(msg){

                // console.log(msg);

                $('.question-modal .textwidget').hide();

                trHTML = "";
                trHTML += "<div id='user-question' style='margin-top:50%; color:#0071BC'>";

                trHTML += "Thanks for your question. We will save your question for further query and give a feedback as soon as possible.";

                trHTML += "</div>";

                $('.question-modal').append(trHTML);

                setTimeout(function() {
                    $('.question-modal #user-question').remove();
                    $('.question-modal .textwidget').show();
                }, 5000);


            }
        });

其中textwidgetform

的班级名称

5 个答案:

答案 0 :(得分:1)

最佳解决方案是 -

$("#form")[0].reset();

在您的成功消息到来时使用此代码。

答案 1 :(得分:1)

完成5秒后,当您隐藏“成功消息”时,您可以重置表单

$("#formId").get(0).reset();

此处“ formId ”表单的ID。

答案 2 :(得分:0)

成功提交表单后,删除所有字段的值。

document.querySelector('get-your-field1').value = '';
document.querySelector('get-your-field2').value = '';
document.querySelector('get-your-field3').value = '';
document.querySelector('get-your-textarea').value = '';

或者您可以使用form reset

&#13;
&#13;
const form = document.querySelector('form');
const btn = document.querySelector('button');

btn.addEventListener('click', event => {
  event.preventDefault();
  form.reset();
});
&#13;
<form>
  <input />
  <input />
  <button type="submit">submit</button>
</form>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

以下是执行表单重置功能的示例:

&#13;
&#13;
function reset(){
    setTimeout(function(){    
      var form = document.getElementById('myForm');
      form.reset();
    }, 1000);
}
var btn = document.getElementById('btn');
btn.onclick = function(){
  reset();
}
&#13;
<form id="myForm">

  <input value="" />
  <br />
  <input value="" />
  <br />
  <input value="" />
  <br />
  <input value="" />
  <br />

  <button id="btn" type="button">reset</button>
</form>
&#13;
&#13;
&#13;

答案 4 :(得分:-1)

请注意,您似乎正在使用表格中的一些令牌。

这意味着,如果您重置值,此令牌仍将存在, 由于重复使用该令牌,服务器可能不会接受下一个表单提交。

当服务器响应时,您需要设置一个新令牌。