2013-12-19 1 views
0

У меня есть HTML, как показано ниже:Создание динамических имен входов, созданных JQuery добавить

NOF: 
<input type="text" class="nof" /> 

<div class="myfld"> 
</div> 

И jquery:

html = ''; 
var html = 'Name : <input type="text" name="ss" />'; 
var html = html + 'Email : <input type="text" name="email" />'; 

$('.nof').keyup(function(){ 
$('.myfld').empty(); 
    nof = $('.nof').val(); 
    for(var x = 0; x < nof; x++) { 
     $('.myfld').append(html); 
    } 
}); 

Когда я ключ вверх, она динамически и Шифрование до создания полей ввода этот момент работает красиво. Но проблема в том, что все созданные поля имеют то же имя, что и ss и email. Итак, как я могу назвать эти имена ss1, email1, ss2, email2 и так далее?

DEMO

ответ

0

Попробуйте что-то вроде этого

$('.nof').keyup(function(){ 
$('.myfld').empty(); 
    nof = $('.nof').val(); 
    for(var x = 0; x < nof; x++) { 
     $('.myfld').append('Name : <input type="text" name="ss_'+x+'" />Email : <input type="text" name="email_'+x+'" /><br/>'); 
    } 
}); 

каждый раз вы добавите входы вы также изменить название входов так и для 3-х входов у вас есть что-то вроде ss_0/email_0, ss_1/EMAIL_1, ss_3/EMAIL_3

0

Вы можете перемещать соответствующие строки внутри цикла для

же для электронной почты

0

Вы можете заменить «соль» на каждой итерации, как это:

html = ''; 
var html = 'Name : <input type="text" name="ssFOO" />'; 
var html = html + 'Email : <input type="text" name="emailFOO" />'; 
var html = html + '<br />'; 

$('.nof').keyup(function(){ 
$('.myfld').empty(); 
    nof = $('.nof').val(); 
    for(var x = 0; x < nof; x++) { 
     var newHtml = html.replace(/FOO/g, String(x)); 
     $('.myfld').append(newHtml); 
    } 
}); 

Demo

0

вы можете проверить этот обновленный скрипку демку [http://jsfiddle.net/ 49gJG/7 /] Demo