根据所选数字添加文本输入

时间:2016-02-22 10:07:32

标签: javascript jquery

目前我有2个选择输入。我倾听他们的变化,然后抓住他们的价值。我已经设置了一点JSFiddle

if (allVideoDevices.Count == 0)
{
    SettingsCamera.Items.Add(frontCamera.Name);
}

我要做的是在每个选择下添加所选数量的文本输入。如果他们在select1中选择allVideoDevices.Count == 0,则应在select1下添加2个文本输入。这样的事情会成为可能吗?如果是这样,怎么样?

由于

3 个答案:

答案 0 :(得分:4)

试试这个demo

$(function() {
    $('.cSelectType').select2({
        tags: false
    });

     $('.cSelectType').on('change', function(){
        var value = parseInt($(this).val());
        $(this).parent().find( ".text" ).remove();
        for ( var counter = 0; counter < value; counter++)
        {
           $( this ).parent().append( "<input type='text' class='text'>" )
        }

    });
});

答案 1 :(得分:3)

要执行此操作,您只需在当前下创建一个新的隐藏行。然后,您可以生成所需的输入HTML N次,并通过其索引将其添加到与当前td相关的select,如下所示:

$('.cSelectType').on('change', function() {
    var inputHtml = new Array(parseInt($(this).val(), 10) + 1).join('<input type="text" class="form-control" />');
    $('.inputs td').eq($(this).index('.cSelectType')).html(inputHtml);
    $('.inputs').show();
});

Working example

答案 2 :(得分:3)

你也可以这样做,

  $('.cSelectType').on('change', function() {
    value = parseInt($(this).val());
    $(this).closest("td").find("input[type='text']").remove();
    $(this).closest("td").append(new Array(value + 1).join('<input type="text" />'));
  });

Fiddle