Плагин динамической формы Jquery, пытающийся переименовывать метки полей по мере их добавления

#jquery #plugins #dynamic-forms

#jquery #Плагины #dynamic-forms

Вопрос:

В настоящее время я использую плагин jquery dynamic form для добавления полей формы. http://sroucheray.org/blog/jquery-dynamic-form /

Моя задача — переименовать метки полей по мере их добавления / клонирования:

Например:

Поле телефона

Поле телефона 2

Поле телефона 3

Если у кого-нибудь есть опыт работы с этим плагином, я определенно был бы признателен за помощь. Спасибо!

Комментарии:

1. можем ли мы увидеть сгенерированный HTML с помощью плагина?

2. @Chad, конечно, я добавил это в свой оригинальный пост выше.

Ответ №1:

Похоже, что атрибут for созданных меток имеет формат, phone# где # это индекс на основе 0, вы могли бы сделать что-то вроде этого:

 var i = 0;
var $label = $('label[for="phone'   i   '"]');
do
{
   var txt = 'Phone Field';
   if(i > 0)
      txt  = ' '   i;
   $label.text(txt);

   i  ;
   $label = $('label[for="phone'   i   '"]');
} while($label.length);
  

Рабочий пример jsFiddle здесь

Редактировать: В ответ на комментарий Дэвида:

Один из способов — перехватывать при добавлении нового клона, подсчитывая, сколько их добавлено (для использования в тексте). Затем вы просто переименовываете добавленную метку:

 var numLabels = 0;
$(document).ready(function() {
    $("#duplicate").dynamicForm("#plus", "#minus", { //options
        limit: 3,
        afterClone: function(clone) {
            numLabels  ;
            var txt = 'Phone Field '   numLabels;
            $('label', clone).text(txt);
        }
    });
});
  

Комментарии:

1. @ DavidJ Мне нужно было увеличить значение i перед повторным выбором, я изменил это и опубликовал рабочий пример.

2. @David, спасибо за твою тяжелую работу! пытаюсь выяснить, как добавить это в мой фрагмент jquery выше.

3. @Chad, спасибо. Похоже, это не работает, пытаюсь устранить неполадки.

4. @David можете ли вы поделиться ссылкой на свой сайт, используя это, или создать jsFiddle , с которым мы могли бы поиграть. Также, когда вы отвечаете кому-то, вы используете @Person, поскольку вы разговариваете со мной, @Chad уместно (@David означает, что вы разговариваете сами с собой)

5. @Чад, хорошо, спасибо тебе за твое терпение, Чад. пожалуйста, найдите ссылку на js fiddle здесь: jsfiddle.net/thbgQ/4

Ответ №2:

Вам следует заглянуть в .метод jQuery delegate()…Если вам нужна помощь в его реализации, дайте мне знать.

Комментарии:

1. Спасибо, парень, тебе нравится название. Я не самый быстрый в JS, как я мог бы использовать это для изменения имен меток? Я добавил свой плагин JS в свой исходный пост. Большое спасибо за помощь.