我目前的表单根据我的下拉选项的变化显示表单的添加内容,但是我想它现在也在新显示的输入框上执行类似的操作,因此,如果用户输入数字,再次使用onChange() “4”表示它提供了4个新输入。 (所以我想要一个循环)这是我一直在尝试的:
var inputt = document.getElementById("options");
inputt.onchange = function(){
var optionValue = parseInt(this.value);
$('#container').empty();
for (i=0;i<=optionValue;i++)
{
$('<input type="text" value=""/>').appendTo('#container');
}
};
here is the jsfiddle注意 - 我只是在进行第一次下拉选择。
忽略破旧的造型,我现在只想要功能。
请帮忙。的问候,
答案 0 :(得分:0)
如果您使用的是jQuery,我首先会使用
$("#options").bind("change",function(){
//your code here
});
而不是直接设置.onchange属性 - 出于多种原因,通常不鼓励以这种方式设置事件处理程序。
但是,您的主要问题似乎是在尝试创建“选项”输入之前尝试绑定此事件处理程序。如果您使用我上面建议的内容,但使用“实时”代替,即使“选项”输入尚不存在,它也会起作用
//i've attached keyup in this example, but you could try modifying it to "change"
$("#options").live("keyup",function(e){
var optionValue = parseInt(e.target.value);
$('#container').empty();
//note optionValue, not optionValue
//note "<" rather than "<=", otherwise if you type "1" you'll get 2 inputs
for (i=0;i<optionValue;i++)
{
$('<input type="text" value=""/>').appendTo('#container');
}
});
另请注意,javascript区分大小写。我已将optionvalue更正为optionValue
注意:我不打算在这里“回答”你的“问题”,而是试着帮助一下。在我看来,你的“问题”涉及修复你的代码,这意味着你真的需要很多不同问题的答案。这只是其中一个答案。