цикл jquery для создания элементов с сохраненными значениями - PullRequest
1 голос
/ 28 апреля 2010

Я недавно задал вопрос о создании элементов с помощью jquery. В частности, мне нужно было создавать / удалять поля ввода в зависимости от значения конкретного поля выбора. На этот вопрос быстро ответили очень хорошим решением:

$('select').change(function() {
     var num = parseInt($(this).val(), 10);
     var container = $('<div />');
     for(var i = 1; i <= num; i++) {
         container.append('<input id="id'+i+'" name="name'+i+'" />');
     }
     $('somewhere').html(container);
});

Это работает очень хорошо. Есть ли способ сохранить значения, оставшиеся в текстовых полях, при изменении выбора? Например, предположим, что значение элемента select установлено в '2', так что отображаются 2 поля ввода. Если в эти поля уже введен ввод, и пользователь изменяет значение элемента выбора на «3», есть ли способ получить первые 2 поля ввода для сохранения их значения?

Заранее спасибо за помощь

Andy

Ответы [ 2 ]

1 голос
/ 28 апреля 2010

Следующая строка должна работать, красиво и просто:

var value = ($("#id"+i).val() || '');
container.append('<input id="id'+i+'" name="name'+i+'" value="'+value+'" />');

Отредактировано, спасибо, Патрик.

1 голос
/ 28 апреля 2010
$('select').change(function() {
     var num = parseInt($(this).val(), 10);
     var container = $('<div />');
     for(var i = 1; i <= num; i++) {

         // append existing input if available
         if($("#id"+i).length){
            container.append($("#id"+i));
         }
         else {
             container.append('<input id="id'+i+'" name="name'+i+'" />');
         }
     }
     $('somewhere').html(container);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...