Javascript 根据表单中的值动态更改表单提交按钮?

Javascript 根据表单中的值动态更改表单提交按钮?,javascript,jquery,forms,form-submit,Javascript,Jquery,Forms,Form Submit,这应该很容易,但在浏览了几个库(首选jquery!)甚至是普通的老javascript之后,我画了一个空白 换言之,一行有3个编辑框,2个预先填充了cheese和pickle的类型,然后一个未填充的框代表一个数字,右边有一个submit按钮。 重复n行 换言之: 假设一个表单显示为搜索结果中的一系列行。 假设有8个结果,即8行。用户可以将其选择保存到100个“插槽”中的任意一个。 如果每一行都有一个名字或字母,那就很容易了;我只需调用每个提交按钮一个数字,从1到8,当按下6时,它知道它要保存的是

这应该很容易,但在浏览了几个库(首选jquery!)甚至是普通的老javascript之后,我画了一个空白

换言之,一行有3个编辑框,2个预先填充了cheese和pickle的类型,然后一个未填充的框代表一个数字,右边有一个submit按钮。 重复n行

换言之: 假设一个表单显示为搜索结果中的一系列行。 假设有8个结果,即8行。用户可以将其选择保存到100个“插槽”中的任意一个。 如果每一行都有一个名字或字母,那就很容易了;我只需调用每个提交按钮一个数字,从1到8,当按下6时,它知道它要保存的是第6行。它使用Malsup的jquery表单东西以ajaxy方式提交表单,这样表单就不必每次都刷新

但这不允许自由选择结果保存在哪个“槽”中。如果我能让submit按钮反映它左边单元格中的数字,我就走了

但我不能,所以我不是。我似乎是唯一一个做这种胡说八道的人。
有更好的方法吗?

让我们假设您的提交按钮是一个按钮元素

$('table').delegate('button', 'click', function(e) {

  var formData = {}

  $(this).closest('tr').find('input').each(function() {
    formData[this.name] = this.value;
  });

  //Add in your code to ajax it off...

  e.preventDefault(); //since buttons/submits behave differently in each browser.

});

//现在,您的所有formData都位于一个对象中。通过Ajax发送。当你说提交按钮应该反映这一点时,你是说提交按钮的名称,这样你就可以在代码中提取它吗?如果你知道你按了“6”,你也可以得到第6行第三次编辑的值,对吗?如果该编辑包含插槽编号,则可以使用该编号保存行。我看不出有什么问题,但可能是因为我不明白这个问题。很抱歉,我花了这么长时间才将此标记为答案。私人的东西出现了。碰巧,在这个例子中,我无法让上面的代码对我起作用,但是您的代码给了我3个非常好的提示,说明我可以用jQuery做什么,我在页面的其他部分也使用了这些代码。所以,谢谢你!没问题,我很高兴能与大家分享一些jQuery知识!