Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   document.ready не срабатывает второй раз (https://javascript.ru/forum/events/66097-document-ready-ne-srabatyvaet-vtorojj-raz.html)

Alexandrhhh 24.11.2016 21:03

document.ready не срабатывает второй раз
 
Привет ГУРУ JS!
Подскажите пожалуйста как решить проблему
есть код
$(document).ready(function(){ 
$("form#addEntForm").submit(function(){ 
if ($('#suggEdit').val().match(/^\s*$/)) { 
var entryname = $('#ldF1').val(); 
 entryname = entryname.split(/ - | – /);
$("#ldF16").val("" + entryname[0]);
$("#ldF15").val("" + entryname[1]);
var tags = entryname[0].split(/ и | and | feat | feat. /).join(', ');
tags = tags.split(' & ').join(', ');
var cat = $("#ldM55 input:checked").next().html(); 
$("#suggEdit").val("" + tags); 
}});});

После отправки формы подгружает данные в нужные поля. Если не обновлять страницу и поменяв данные ещё раз отправить ничего не произойдёт. Уже всё перегуглил не могу понять что не так.

ksa 25.11.2016 08:38

Цитата:

Сообщение от Alexandrhhh
подгружает данные в нужные поля

Скорее всего просто меняется весь ДОМ... И на новых элементах нет обработчиков...

Используй делегирование.

Alexandrhhh 25.11.2016 09:00

Всем спасибо. Подкрутил, просто нужно было по сути убрать условие, ну и заполнение настроил после каждого нажатия
$(document.body).keyup(function(){ 
$("#ldF10").each(function() { 
var entryname = $('#ldF1').val(); 
 entryname = entryname.split(/ - | – /);
$("#ldF16").val("" + entryname[0]);
$("#ldF15").val("" + entryname[1]);
var tags = entryname[0].split(/ и | and | feat | feat. /).join(', ');
tags = tags.split(' & ').join(', ');
var cat = $("#ldM55 input:checked").next().html(); 
$("#suggEdit").val("" + tags); 
})});


Часовой пояс GMT +3, время: 00:45.