Изменить имя радио входа - исчезнуть радио проверено

У меня есть вопрос об изменении входного номера в атрибуте имени через порядок ящиков. Когда я меняю имена входов в первом поле, второе поле с радио-входом теряет проверенное значение.

$('.container').find('.box').each(function (idx) {
            $(this).find('input').each(function () {
                let field = $(this);
                let fieldName = field.attr('name');
                let mIndex = 0;

                if (fieldName.length !== 0) {
                    field.attr('name', fieldName.replace(
                      /\[\d+]/g, 
                      function (match, pos, original) {
                          return mIndex++ === 0 ? '[' + idx + ']' : match;
                      }));
                    field.attr('id', field.attr('name').replace(/[\[\]]/g, '#').replace(/\#+/g, '-').replace(/[-]+$/g, ''));
                    field.closest('.field').children('label').attr('for', field.attr('id'))
                }
            });

Вот мой код с примером: https://jsfiddle.net/pbLkabhe/

Мой вопрос заключается в том, как исправить код Javascript, чтобы после изменения имени входа оставалось проверенное значение радио-ввода.


person Matt    schedule 18.06.2017    source источник
comment
Я не вижу недостатков в вашей форме.   -  person Arkadiusz Wieczorek    schedule 18.06.2017
comment
Во втором поле не отображается опция проверки ввода радио (prntscr.com/fl5794)   -  person Matt    schedule 18.06.2017


Ответы (1)


Все ваши радиостанции рассматриваются как одна и та же группа радиостанций, потому что они имеют одно и то же имя (квадраты не делают их отдельной группой). Это означает, что только 1 из них будет проверен. Я изменил название второго набора радиокнопок, так что теперь оба радиоприемника имеют правильное радио.

<label>
  <input id="box-0-radio" name="hello[0][radio]" type="radio" value="0" checked="checked">        
  Option 3
 </label>
 <label>
   <input id="box-0-radio" name="hello[0][radio]" type="radio" value="1">
    Option 4
 </label>

https://jsfiddle.net/pbLkabhe/1/

person WizardCoder    schedule 18.06.2017
comment
Но я не хочу менять имя, я хочу сохранить имя с полем [{номер}][{имя}]. У меня может быть какое-то поле с полями, например поле 6-9 с входным радио, где имя — поле [0], поле [1], поле [2], .... и т. д. - person Matt; 18.06.2017
comment
Если радиокнопка имеет одинаковое имя, независимо от квадратных скобок, одновременно может быть проверена только одна из них. Именно так работает радиокнопка. Вы ничего не можете с этим поделать. - person WizardCoder; 18.06.2017
comment
Может быть, я могу сделать это со старым значением переменной tmp, установить новое и установить новое имя tmp? - person Matt; 18.06.2017