使用jquery的动态表单问题

时间:2011-03-29 11:09:48

标签: javascript jquery forms dynamic-forms

我目前的表单根据我的下拉选项的变化显示表单的添加内容,但是我想它现在也在新显示的输入框上执行类似的操作,因此,如果用户输入数字,再次使用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注意 - 我只是在进行第一次下拉选择。

忽略破旧的造型,我现在只想要功能。

请帮忙。

的问候,

1 个答案:

答案 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

注意:我不打算在这里“回答”你的“问题”,而是试着帮助一下。在我看来,你的“问题”涉及修复你的代码,这意味着你真的需要很多不同问题的答案。这只是其中一个答案。

相关问题