2

我有一个简单的表单提交,成功后我会收到警报并要求清除表单。我确实收到了警报,信息已成功添加到数据库中,但第二次调用 - 清除表单,并未执行。我确定这很简单,我做错了,但我无法弄清楚。

$('#contact_submit').click(function(e){
                if ($("#submit_form_contact").valid()) {


                    var post_data = {
                        "name" : $('#name').val(),
                        "email" : $('#email').val(),
                        "inquiry" : $('#inquiry_dropdown option:selected').text(),
                        "message" : $('#message').val()
                    };


                    $.ajax({  
                      type: "POST",  
                      url: "process-contact.php",  
                      data: post_data,  
                      success: function(data) {  
                        alert("Thank you for contacting us.");
                        $('#submit_form_contact').reset();
                      }  
                    });

                    e.preventDefault();

                }

此外,提交按钮只是一个按钮,而不是提交输入。有必要防止Default()吗?我是新来的。

4

2 回答 2

3

jQuery 没有.reset()方法。

改为这样做:

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

这会抓取第一个 DOM 元素,并调用原生.reset(). 如果有可能找不到表单,请测试该元素。

var f = $('#submit_form_contact')[0];

if (f)
    f.reset();

当然,您实际上并不需要 jQuery 来通过 ID 获取元素,尤其是在您不打算使用任何 jQuery 方法的情况下。

var f = document.getElementbyId('submit_form_contact');

if (f)
    f.reset();

另一种选择是将提交按钮设置为context:ajax 调用,然后使用其form属性。

                $.ajax({  
                  context: this,
                  type: "POST",  
                  url: "process-contact.php",  
                  data: post_data,  
                  success: function(data) {  
                    alert("Thank you for contacting us.");
                    this.form.reset();
                  }  
                });
于 2013-09-21T20:40:25.317 回答
0

这条线也可以用

$("#submit_form_contact").trigger('reset');
于 2013-09-22T03:45:00.697 回答