目前我有2个选择输入。我倾听他们的变化,然后抓住他们的价值。我已经设置了一点JSFiddle。
if (allVideoDevices.Count == 0)
{
SettingsCamera.Items.Add(frontCamera.Name);
}
我要做的是在每个选择下添加所选数量的文本输入。如果他们在select1中选择allVideoDevices.Count == 0
,则应在select1下添加2个文本输入。这样的事情会成为可能吗?如果是这样,怎么样?
由于
答案 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();
});
答案 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" />'));
});