2013-05-02 6 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(); 
     } 
    }); 
}); 

план им использовать сгенерированные текстовые поля, чтобы запросить дополнительную информацию от пользователя, а затем использовать эту новую информацию, чтобы обработать другой сценарий.

+0

В [этот вопрос] (http://stackoverflow.com/questions/16328719/creating-text-boxes-based-on-the- value-of-a-text-box/16328901 # 16328901), вы спрашиваете одно и то же в конце, собираетесь ли вы спросить кого-нибудь, как читать значение из динамически сгенерированного текстового поля с уникальным именем? –

ответ

0

Просто добавьте текущий счет на имя поля:

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

Mark, спасибо. Как только мои текстовые поля сгенерированы ... есть способ, которым я могу динамически создавать еще одно текстовое поле, когда мои текстовые поля загружаются с новой кнопкой отправки, вызывающей дополнительную функцию? –

+0

Несомненно. В этом случае вы, вероятно, захотите отслеживать счет за пределами цикла, чтобы его можно было повторно использовать. Например. initialize 'var count = 1;' в начале, используйте 'name: 'text' + count' вместо' name: 'text' + i' и добавьте 'count ++' всякий раз, когда вы создаете текстовое поле. –

+0

может быть моим кодом скрипта, который динамически добавляет новую строку таблицы может быть любой помощи :) каждая строка имеет другое имя и идентификатор. http://stackoverflow.com/questions/16328743/where-to-call-a-function-in-jquery Я предполагаю, что создание другого текстового поля будет просто добавлением другого .append ([вашего нового текстового поля])? – yvonnezoe

Смежные вопросы