2013-05-02 184 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

相關問題