Прошу подсказать с загрузкой и выполнением js на странице

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 30 января 2016 в 18:44
Вывожу на странице форму с полем input

На странице также стоит js jquery код — валидатор заполнение данного input

Так вот он работает)

но:

так же есть кнопочка, при нажатии на которую после этого поля через jquery появляется точно такое же поле input для ввода еще одного значения.
так вот элементы которые подгружены на страницу после загрузки страницы не обрабатываются js

что нужно сделать чтобы вновь испеченное поле тоже обрабатывалось
#2 30 января 2016 в 18:58

что нужно сделать чтобы вновь испеченное поле тоже обрабатывалось

kreator

Интересно, как можно поправить код, не видя кода? Типо блондинко звонит в автосервис и спрашивает: машина не завелась, что делать? А ее спрашивают, что за машина, какие признаки неисправности? А она: ну не знаю, это вы машины чините, должны знать, что в машинах ломается)))
#3 30 января 2016 в 19:09
Вот поле:
  1. <input type="text" class="input" name="date" value="" id="date" placeholder="Год-месяц-число">
Вот скрипт который добавляем еще поле и валидатора:
  1. <script>
  2.  
  3. $(document).ready(function(){
  4.  
  5. var i = $('.plan_fields table').size() + 1;
  6.  
  7. $('#add').click(function() {
  8. $('<input type="text" class="input" name="date" value="" id="date" placeholder="Год-месяц-число" />').fadeIn('slow').appendTo('.fields');
  9. });
  10.  
  11. $("#date").inputmask("y.m.d", { "placeholder": "-" });
  12.  
  13. });
  14. </script>
Собственно по клику
  1. <span id="add">ADD</span>
Появляется еще одно поле
#4 30 января 2016 в 19:10
Странник, да тут и так всё понятно, селектор валидатора привязан к конкретному инпуту.
kreator, вам надо переписать селектор на все инпуты родительского блока
#5 30 января 2016 в 19:12
Ну, с кодом конечно интереснее, но мысли были в правильном направлении.
#6 30 января 2016 в 19:16
да хоть разные...

если в форму вывести 2 одинаковых поля сразу, оба будут обрабатываться, Если разные селекторы и к каждому привязать валидатор. обрабатываться будет.

но если поле подгружено после загрузки т.е. сгенерировано js к нему обращения нет.
#7 30 января 2016 в 19:21
kreator, боже мой, настолько корявого кода я давно не видел)))))
Смотрите, у вас
1. два id = "date" на одной странице
2. зачем писать
  1. $('<input type="text" class="input" name="date" value="" id="date" placeholder="Год-месяц-число" />').fadeIn('slow').appendTo('.fields');
когда достаточно написать
  1. $("#date")...
но при условии, что этот инпут будет обладать (как и положено делать всегда) уникальным id?
Джейквери для обработки всегда берет первый из найденых элементов. А у вас куча элементов с одним и тем же неуникальным id. И еще удивляетесь что не работает.
Извините за резкость, но вы сами виноваты, что вас обозвали "блондинкой, которая звонит в автосервис"
#8 30 января 2016 в 19:21
по этой же причине я не смог вывести аяксом еще одно поле с датой, где по клике всплывает календарик для выбора. поле появления поля, никаких календариков)
#9 30 января 2016 в 19:33

боже мой

Странник
в приведенном мною коде только 1 id="date"
если хотите в параллельном форуме могу создать другую тему где обсудим красоту

я же говорю — не в одинаковости дело, хорошо id везде разные НО можно обращаться не по id а по классу (классы разрешите одинаковые прописать к полям?).

для примера написал этому валидатору так:

  1. $(".input").inputmask("y.m.d", { "placeholder": "-" });
на странице около десятка inputov с таким классом. ко всем он прицепился, а к сгенерированому по js такому же полю не цепляется.
#10 30 января 2016 в 19:43

не цепляется.

kreator
может быть, потому, что в теле метода $(document).ready(function(){........}) код выполняется только после загрузки страницы?
Вынесите этот код за пределы этого метода и посмотрите, что будет
#11 30 января 2016 в 19:55
Вот это уже видимо правда. Спасибо.

p.s. Занесло меня куда то, думаешь далеко, а правда рядом.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.