Javascript 输入';名称';属性,该属性用于克隆输入,位于列表中

Javascript 输入';名称';属性,该属性用于克隆输入,位于列表中,javascript,jquery,html,list,Javascript,Jquery,Html,List,这就是我的情况。我有一个无序列表,列表中有一组输入和一个可以克隆4个输入的按钮。因为数据来自后端,所以可以有一个列表集或1000。因此,我试图根据列表索引号动态地为列表中的每个输入赋予名称属性,并找出一种方法来为克隆的输入也赋予名称属性。如果查看类pm providerNum我正在做一些类似于提供者名称的事情,因此它基于列表的数量。如果我添加更多列表,提供者名称将自动更改。返回到名称,因此对于li编号1,除了动态创建的输入之外,每个输入上都有名称。每个输入名称如下 在动态输入(如添加位置)上,输

这就是我的情况。我有一个无序列表,列表中有一组输入和一个可以克隆4个输入的按钮。因为数据来自后端,所以可以有一个列表集或1000。因此,我试图根据列表索引号动态地为列表中的每个输入赋予名称属性,并找出一种方法来为克隆的输入也赋予名称属性。如果查看类pm providerNum我正在做一些类似于提供者名称的事情,因此它基于列表的数量。如果我添加更多列表,提供者名称将自动更改。返回到名称,因此对于li编号1,除了动态创建的输入之外,每个输入上都有名称。每个输入名称如下

在动态输入(如添加位置)上,输入名称应为:

   <input type="text" name="p-address-0-dynamic#[dynamicnumber]" class="pm-
   psubmit" placeholder="First Name" required="">
     <input type="text" name="p-address-0-dynamic#[0]" class="pm-psubmit" 
     placeholder="First Name" required="">


我会这样做:对于每个“providor”组,所有输入名称属性都以
提供者[索引]
开头,然后将每个特定字段的名称作为第二维度输入:
提供者[1][firstname]
提供者[1][lastname]

然后,对于您的位置字段,在末尾添加一个附加索引,以指示它属于哪个位置组:

  • provider[1][city][1]
  • provider[1][state][1]

  • provider[1][city][2]

  • provider[1][state][2]
等等

您还可以使用.data()函数存储providor索引和位置索引,以便以后更容易获取

以下是一个工作示例:

$('.pm providerInputGroup')。每个(函数(索引)
{
var inputGroupId=索引+1;
var groupEl=$(本);
groupEl.data('groupId',inputGroupId);
groupEl.find('.pm providerNum').html('Providor'+inputGroupId);
groupEl.find('.pm psubmit')。每个(函数()
{
var cleanName=$(this.attr('placeholder').toLowerCase().replace(/[^a-z0-9]+/g');
$(this.attr('name','providor['+inputGroupId+']['+cleanName+']);
});
groupEl.find('.pm loc section.pm loc inputWrapper')。每个(函数(index2)
{
变量locGroupId=index2+1;
$(this).data('locGroupId',locGroupId);
$(this).find('.pm psubmit').each(function()
{
var curName=$(this.attr('name');
$(this.attr('name',curName+'['+locGroupId+']');
});
});
});
$(文档).on(“单击“,”.pm添加loc类”,函数()
{
变量$sect=$(此).closest(“.pm loc section”);
var lastLocGroup=$sect.find(“.pm loc inputWrapper”).eq(-1);
var lastLocGroupId=lastLocGroup.data('locGroupId');
var newLocGroup=lastLocGroup.clone();
var newLocGroupId=lastLocGroupId+1;
newLocGroup.show().insertBefore($sect.find(“.pm loc controls”)).find('input').val(“”);
newLocGroup.data('locGroupId',newLocGroupId);
newLocGroup.find('.pm psubmit')。每个(函数(index2)
{
var curName=$(this.attr('name');
var newName=curName.replace(/(\w+\[^\]+\]\[^\]]+\])(\[^\]+\]])/,“$1['+newLocGroupId+']);
$(this.attr('name',newName);
});
});

  •      <input type="text" name="p-address-0-dynamic#[1]" class="pm-psubmit" 
         placeholder="First Name" required="">
    
        <input type="text" name="p-address-1-dynamic#[0]" class="pm-psubmit" 
        placeholder="First Name" required="">
    
        <input type="text" name="p-address-1-dynamic#[1]" class="pm-psubmit" 
        placeholder="First Name" required="">