Javascript 使用jQuery而不使用AJAX有选择地提交字段

Javascript 使用jQuery而不使用AJAX有选择地提交字段,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我有一个HTML表单,它可以动态扩展,最终可以在上面显示400多个支持输入的字段。 我想有选择地决定在提交表单时发布哪些字段(不是通过AJAX),以便只提交值已更改的字段 我知道实际上只有具有name属性的输入字段才会发布,所以我的想法是获取每个元素Id(已更改)并使用JQuery添加name属性,如下所示:- $('#field1').attr('name','field1') 这将是在提交之前,因此(理论上)只提交已更改的字段 我在谷歌上搜索过这样的例子,但令人惊讶的是,在任何地方都找不到任

我有一个HTML表单,它可以动态扩展,最终可以在上面显示400多个支持输入的字段。 我想有选择地决定在提交表单时发布哪些字段(不是通过AJAX),以便只提交值已更改的字段

我知道实际上只有具有name属性的输入字段才会发布,所以我的想法是获取每个元素Id(已更改)并使用JQuery添加name属性,如下所示:-

$('#field1').attr('name','field1')

这将是在提交之前,因此(理论上)只提交已更改的字段

我在谷歌上搜索过这样的例子,但令人惊讶的是,在任何地方都找不到任何例子。我见过的最接近的例子是有人提到在提交前禁用字段

因此,我的问题是:- 这个主意行得通吗? 如果是,使用这种方法是否有任何负面原因

提前感谢您的帮助

$('input').change(function(){
  var newName = $(this).attr("id"); //could use any attribute, maybe data-name
  $(this).attr("name", newName);
})
当任何输入字段发生更改时,id将作为其名称添加到字段中

对于一般的desgin问题,我可能会提交整个表单,并且只在服务器端更新更改的字段——在我的情况下,它实际上将由hibernate处理

当任何输入字段发生更改时,id将作为其名称添加到字段中



对于一般的desgin问题,我可能会提交整个表单,并且只在服务器端更新更改的字段-在我的情况下,它实际上会由hibernate处理。

如果你通过JS添加
名称
属性,没有人可以在JS被禁用的情况下使用你的站点。@feeela人们现在还不会这样做,是吗?@NimChimpsky我不会“人民“,但可以–不启用JS是完全有效的用户选项。网站应始终不依赖JS或任何浏览器插件。如果你不明白为什么这是有益的,你应该检查一下天空,这是你的个人选择,因为我有我的。但W3C的官方政策是建立和提供可访问的网站。这还包括技术上的可访问性。查看上面的WCAG链接……这个项目是为一个将启用javascript的客户设计的——如果javascript被关闭,我会遇到各种问题:)如果你通过JS添加
name
属性,没有人可以在禁用JS的情况下使用你的站点。@feeela人们现在还不会这样做,是吗?@Nimchinpsky我不是“人”,但是是的–不启用JS是完全有效的用户选项。网站应始终不依赖JS或任何浏览器插件。如果你不明白为什么这是有益的,你应该检查一下天空,这是你的个人选择,因为我有我的。但W3C的官方政策是建立和提供可访问的网站。这还包括技术上的可访问性。请参阅上面的WCAG链接…此项目针对的是将启用javascript的客户-如果关闭javascript,我会遇到各种问题:)这假设每个输入字段都分配了一个ID。你也不能这样发送数组。@feeela是的,它确实假设,什么数组,我在哪里发送它们?谢谢你的回答,但我认为这并不能真正回答我的问题。我知道如何更改字段的名称和更改时间。我只是不知道这是否是正确的方法,因为在网上没有其他这样的例子。Feeela-我很好奇-为什么你不能用这种方式发送数组?我很好奇,在我的回答中,哪里有人看到数组。这假设每个输入字段都分配了一个ID。你也不能这样发送数组。@feeela是的,它确实假设,什么数组,我在哪里发送它们?谢谢你的回答,但我认为这并不能真正回答我的问题。我知道如何更改字段的名称和更改时间。我只是不知道这是否是正确的方法,因为在网上没有其他这样的例子。Feeela-我很好奇-为什么你不能用这种方式发送数组?我很好奇,在我的答案中,哪里有人看到数组