Показать сообщение отдельно
  #12 (permalink)  
Старый 10.09.2016, 13:43
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Если структура кода кнопок и поля ими обслуживающего такова:

<div class="korpus">
    <label><input name="city_id" type="radio" value="6600001500000"> Новоуральск</label>
    <label><input name="city_id" type="radio" value="6600002300000"> Н. Тагил</label>
    <label><input name="city_id" type="radio" value="6600000100000"> Екатеринбург</label>
</div>
<div class="box">
    <input type="text" name="city[]" placeholder="Город">
</div>


то код обработчика (собственно как и все обработчики иные) лучше сделать через делегирование. В примере для этих кнопок делегируется BODY, но если все динамически вставляемые элементы имеют общего ближайшего родителя присутствующего в документе, например форма, то лучше ему:

$('body').on('change', 'div.korpus input', function() {
        $(this).closest('.korpus').next().find('input').val(this.value)
     });


В этом случае добавляемые динамически элементы будут обрабатываться. Единственно что не понятно вот с этим:

<script>$('[name="city2"]').kladr({type: $.kladr.type.city});</script>

Это также вставляется в документ динамически? А нужно после добавления div.box найти в нем input и подключить kladr:

(вставляемый код).appendTo(selector).find('input').kladr({type: $.kladr.type.city});


Я удалил id у меток, кнопок и поля, вполне можно обойтись и без них. У добавляемых радио кнопок (группы из трех) имена должны отличать от имен других групп.
Поле ввода именовано так как я писал ранее. Как могут у сервера не закипеть мозги, если ему прислать ключи city1, city2, city3, ... cityN? Это же просто очень не удобно для обработки.

Последний раз редактировалось laimas, 10.09.2016 в 13:56.
Ответить с цитированием