Javascript 使用ajax提交多字段数据

Javascript 使用ajax提交多字段数据,javascript,ajax,jquery,Javascript,Ajax,Jquery,所以我有这个 $('.add_options')。在('click',函数(){ $('#变体')。附加(''); var size=parseInt($('#variants').attr(“数据大小”),10)+1; $('变量').attr(“数据大小”,大小); $(“#计数”)。文本(大小); }); $('#variants')。在('click','.remover',函数(){ $(this).closest('.some_id').hide(); var size=parse

所以我有这个

$('.add_options')。在('click',函数(){
$('#变体')。附加('');
var size=parseInt($('#variants').attr(“数据大小”),10)+1;
$('变量').attr(“数据大小”,大小);
$(“#计数”)。文本(大小);
});
$('#variants')。在('click','.remover',函数(){
$(this).closest('.some_id').hide();
var size=parseInt($('变量').attr(“数据大小”),10)-1;
$('变量').attr(“数据大小”,大小);
$(“#计数”)。文本(大小);
});
用户可以添加任意多的字段,在用户更新字段值(数字n)之后,我想使用ajax提交数据。 我的问题是,从所有文本框中获取数据的最有效方法是什么,同时保持每个数据字段的可区分性(以便我可以更新我的数据库)。 Ps:实际上每行有两个文本框,因此当用户单击“添加更多”时,它会同时附加两个文本框(属性名称和属性类型),小提琴只有属性名称。

谢谢。

使用serialize jQuery函数:

将输入包装在表单中,然后您可以在提交时序列化数据并发布ajax

var dataToBeSubmitted = $('form').serialize()

您的代码中存在一些问题

  • ID是唯一的,每页仅一次
  • 您的HTML无效-
    ul
    标记应该只有
    li
    标记
  • 如果要使用
    .serialize
    方法,则
    输入必须具有
    名称
    属性
  • 但如果我们忘记了这个bug,这里有一个解决方案:

    $('input[name=submit]').click(function () {
        var data = $('#variants .prop_name').serialize();
        console.log(data);
    });
    

    谢谢,但由于表单探测中的某些rails表单,我仍在尝试将其放入表单中进行辩论。与其感谢,不如将其中一个答案标记为已接受/赞成票;或者问什么不起作用或者什么你不明白
    $('input[name=submit]').click(function () {
        var data = $('#variants .prop_name').serialize();
        console.log(data);
    });