使用循环动态更新表单ID值

时间:2019-11-05 10:20:30

标签: javascript forms

我有一个名为 Name 的字段,其字段ID为:

    'id_Name_set-0' on row 0
    'id_Name_set-1' on row 1
     etc...

'Name_set-0','Name_set-1'在创建行时自动设置。

我正在尝试使用在第0行输入的名称自动填充名称字段。

我的第一个方法是:

    $('#id_Name_set-0').on('input',function(e){
        $('#id_Name_set-1').val(String($('#id_Name_set-0').val()));
    });

    $('#id_Name_set-0').on('input',function(e){
            $('#id_Name_set-1').val(String($('#id_Name_set-0').val()));
        });

    $('#id_Name_set-0').on('input',function(e){
            $('#id_Name_set-2').val(String($('#id_Name_set-0').val()));
        });

这很好,因为我将值0、1、2硬编码了,但是我想使用循环来动态更新这些值。

2 个答案:

答案 0 :(得分:0)

您可以使用$('input[id^="id_Name_set-"]')过滤输入,获取输入总数,然后跳过循环中的第一个(数字0)。

var totalDivs = $('input[id^="id_Name_set-"]').length;

for(var i = 1; i < totalDivs; i++)
{
    $("#id_Name_set-" + i).val(i);
}

很显然,以上内容可以满足您的需求,例如将所有输入设置为第一个输入的值。这只是实现它的一个示例。

答案 1 :(得分:0)

为此使用JQUERY,首先获取所有输入并在其上设置each循环。
this.id将获得使用输入的输入的ID。

$("input").each(function(){
  $(this).on("input",function(){
    alert(this.id);
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="input1"/>
<input id="input2"/>
<input id="input3"/>
<input id="input4"/>