2013-05-02 183 views
-1

我已经创建了一个脚本来动态生成基于用户输入的X文本框。我怎样才能给每个文本框自己的名字,所以我可以在生成后分别使用每个文本框?给动态生成的文本框唯一的名称

演示:Fiddle使用生成的文本框,以从用户请求更多的信息,然后使用该新的信息来处理另一脚本

<html> 

<head> 
<script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
<script src="http://code.jquery.com/ui/1.10.1/jquery-ui.js"></script> 
<script> 

$(document).ready(function(){ 
$("#ppl").change(function(){ 

    // The easiest way is of course to delete all textboxes before adding new ones 
    //$("#holder").html(""); 

    var count = $("#holder input").size(); 
    var requested = parseInt($("#ppl").val(),10); 

    if (requested > count) { 
     for(i=count; i<requested; i++) { 
     var $ctrl = $('<input/>').attr({ type: 'text', name:'text', value:'text'});   
      $("#holder").append($ctrl); 
     } 
} 
    else if (requested < count) { 
     var x = requested - 1; 
     $("#holder input:gt(" + x + ")").remove(); 
    } 
}); 
}); 
</script> 

</head> 
<body> 
    <Input type="text" id="ppl"> 
    <button onclick="function()">Try it</button>  
<div id="holder"></div> 
</body> 
</html> 

$(document).ready(function(){ 
    $("#ppl").change(function(){ 

     var count = $("#holder input").size(); 
     var requested = parseInt($("#ppl").val(),10); 

     if (requested > count) { 
      for(i=count; i<requested; i++) { 
       var $ctrl = $('<input/>').attr({ type: 'text', name:'text', value:'text'});   
       $("#holder").append($ctrl); 
      } 
     } else if (requested < count) { 
      var x = requested - 1; 
      $("#holder input:gt(" + x + ")").remove(); 
     } 
    }); 
}); 

IM计划。

+0

在[这个问题](http://stackoverflow.com/questions/16328719/creating-text-boxes-based-on-the-一个文本框的值/ 16328901#16328901)最后你会问同样的事情,你会问某人如何从一个动态生成的文本框中读取一个具有唯一名称的文本框的值吗? – 2013-05-02 01:58:30

回答

0

只需追加当前计数字段名称:

var $ctrl = $('<input/>').attr({ type: 'text', name:'text'+i, value:'text'}); 
+0

马克,谢谢。一旦我的文本框生成...有没有一种方法,我可以动态创建另一个文本框,一旦我的文本框加载一个新的提交按钮调用一个额外的功能? – 2013-05-02 01:25:11

+0

当然。在这种情况下,您可能想要跟踪循环外的计数,以便重用它。例如。初始化'var count = 1;'在开始时,使用'name:'文本'+ count'而不是'name:'text'+ i',并且在创建文本字段时添加'count ++'。 – 2013-05-02 01:35:44

+0

可能是我的小提琴代码,它动态地添加一个新的表格行可以有任何帮助:)每行都有不同的名称和id。 http://stackoverflow.com/questions/16328743/where-to-call-a-function-in-jquery我想创建另一个文本框将只是添加另一个.append([你的新文本框])? – yvonnezoe 2013-05-02 01:39:33

相关问题