【问题标题】:jQuery dynamic creation of input fields based on the number selected in a dropdown menu?jQuery根据下拉菜单中选择的数字动态创建输入字段?
【发布时间】:2010-11-12 13:18:28
【问题描述】:
【问题讨论】:
标签:
jquery
forms
select
dynamic
input
【解决方案1】:
您需要做的就是找出用户更改下拉菜单时选择了哪个数字,然后遍历该数字,为每次迭代创建两个输入字段。
$("#selectBox").change(function() {
var htmlString = "";
var len = $("options:selected", this).val();
for (var i = 0; i < len; i++) {
htmlString += "<input type='text' class='email'>";
htmlString += "<input type='text' class='name'>";
}
$("#outputArea").html(htmlString);
}
您甚至可能想让它更智能,因此它会检查您已经拥有多少个输入字段,然后只根据需要创建或删除一些。这样,它会快一点(:
【解决方案2】:
这将在页面上的选择之后插入一个文本框。每次更改数字时都会触发。
var idFun = 0;
$('select').change(function() {
var end=$(this).val();
for (var i=0;i<end;i++) {
$('<div><input id="fun' + (idFun++) + ' type="text" ></div>').appendTo($('#myinputs'));
}
});
HTML:
<select>
... 1 to 20 here
</select>
<div id="myinputs"></div>
希望这会有所帮助。
【解决方案3】:
真正的解决方案:
<script type="text/javascript">
$(document).ready(function() {
$("#AantalAntw").change(function() {
var htmlString = "";
var len = $("#AantalAntw").val();
for (var i = 0; i < len; i++) {
htmlString += "<input type='text' class='email'>";
htmlString += "<input type='text' class='name'>";
}
alert(htmlString);
$("#antwblok").html(htmlString);
});
});
</script>