Javascript ajax单击“禁用提交”按钮,然后再次启用

Javascript ajax单击“禁用提交”按钮,然后再次启用,javascript,ajax,Javascript,Ajax,大家好,我有这个功能,它的工作非常棒,但我得到一个小问题 $(document).ready(function(){ $("input[type='submit']").attr("disabled", false); $("form").submit(function(){ $("input[type='submit']").attr("disabled", true).val("Please wait."); setTimeout(function(){ $("inpu

大家好,我有这个功能,它的工作非常棒,但我得到一个小问题

 $(document).ready(function(){
$("input[type='submit']").attr("disabled", false);
$("form").submit(function(){
  $("input[type='submit']").attr("disabled", true).val("Please wait.");
    setTimeout(function(){
    $("input[type='submit']").attr("disabled", false).val("Submit");    
}, 3*1000);
  return true;
})
})
问题是,当我在一个页面中有两个表单时,它会更改所有提交按钮的值。我只希望该功能仅为单击的按钮激活,而不是为所有提交按钮激活

我希望你明白我的意思。我知道我需要修改函数中的一些内容,但我在这样做时遇到了一些问题

使用此引用当前提交的表单,然后可以使用。查找以获取该表单的子代提交输入:


还请注意,您可能更喜欢,除非您使用的是古老版本的jQuery。

但您的问题是如何仅选择当前表单中的“提交”按钮?我的意思是,该函数应该只影响单击了“提交”按钮的表单。这就是$this.find应该注意的-它将查找作为已提交表单后代的输入,而不是页面上任何其他表单的任何输入
$("form").submit(function(){
  const input = $(this)
    .find("input[type='submit']")
    .attr("disabled", true)
    .val("Please wait.");
  setTimeout(function(){
    input
      .attr("disabled", false)
      .val("Submit");    
  }, 3*1000);
  return true;
});