如何在jquery中通过(this)选择器重置表单?

时间:2018-05-30 16:56:03

标签: jquery forms

在下面的函数中,重置表格不起作用!

$('#myform').submit(function (event) {
  event.preventDefault();
  $.post($(this).attr('action'), $(this).serialize(), function(data, status) 
  {
    $(this)[0].reset(); // error : $(...)[0].reset is not a function
  }
}

如何解决 谢谢

1 个答案:

答案 0 :(得分:2)

怎么样:

$('#myform').submit(function (event) {
  event.preventDefault();
  $.post($(this).attr('action'), $(this).serialize(), function(data, status) 
  {
    // post callback function - $(this) is no longer 'myForm'
  }
  $(this).trigger('reset'); // trigger form reset after $.post()
}

您希望确保表单在表单重置之前成功发布,因此可能在$ .post()回调中您可以设置变量,然后在触发重置之前检查它。

这样的事情:

var can_reset = false;
$('#myform').submit(function (event) {
  event.preventDefault();
  $.post($(this).attr('action'), $(this).serialize(), function(data, status) 
  {
    // unsure if your response returns data.success - just an example
    if (data.success == true) {
        can_reset = true;
    }
  }

  if (can_reset) {
      $(this).trigger('reset');
  }
}