Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не работает событие change на поле input (https://javascript.ru/forum/jquery/70480-ne-rabotaet-sobytie-change-na-pole-input.html)

rybachok91 07.09.2017 22:50

Не работает событие change на поле input
 
Вложений: 1
Здравствуйте, уважаемые программисты! Помогите, пожалуйста, новичку:cray: . Я делаю следующее: при клике на блок #name меняю его содержимое на input. И теперь нужно, чтобы, когда в поле будет изменено значение, при нажатии на Enter или уводе фокуса это значение сохранить в переменную, чтобы дальше использовать. Я не могу понять, почему не работает событие, если я пишу его после инструкции с заменой. Не говоря уже о том, как объединить 2 события с помощью on(). Единственное, что получается, это когда событие прописано в самом теге input. Почему так получается с событием? Помогите.....

ksa 08.09.2017 08:24

Копировать текст программы текстом уже моветон? :blink:

Dilettante_Pro 08.09.2017 10:38

rybachok91,
Сколько div с id="name" у вас создается в цикле?
id должен быть уникальным.
То же замечание и по индексам других создаваемых div

Белый шум 08.09.2017 10:39

ksa,
Простой текст в наш век цифровых технологий, когда фотоаппарат есть в каждом телефоне?... :D

rybachok91,
Вы пытаетесь навесить событие на элемент, которого ещё нет. Он появится потом, при клике.

ksa 08.09.2017 11:48

Цитата:

Сообщение от Белый шум
Простой текст в наш век цифровых технологий, когда фотоаппарат есть в каждом телефоне?

От нас наверное уже видео ждут с объяснениями... :blink:

rybachok91 08.09.2017 13:05

Цитата:

Сообщение от ksa (Сообщение 464053)
От нас наверное уже видео ждут с объяснениями... :blink:

Спасибо, что ответили. Вот Вы смеетесь, а мне все так же не понятно. Все когда-то начинали и ошибались. Тогда буду искать видео, где объяснят.

rybachok91 08.09.2017 13:21

Цитата:

Сообщение от Белый шум (Сообщение 464045)
ksa,
Простой текст в наш век цифровых технологий, когда фотоаппарат есть в каждом телефоне?... :D

rybachok91,
Вы пытаетесь навесить событие на элемент, которого ещё нет. Он появится потом, при клике.

Спасибо, что ответили. Давайте я Вас еще больше рассмешу. Мне не понятно: в первом виде на скриншоте следом за событием click написано change и вывод alert для проверки, если оно сработало. Во втором виде последовательность та же и все заработало. Ну и конечно да, у меня не получилось объединить два события через on() :( это вас повеселит.

$("#name").click(function() {
$(this).replaceWith('<input type="text" name="correct_name"
id="cor_name" value="' + get_name(person_data) +'" size="30">');

$("#cor_name").keyup(function(eventObject){
changed_name = $("#cor_name").val();
if (event.keyCode == 13) {
return changed_name;
}
});
$("#cor_name").change(function(){
changed_name = $("#cor_name").val();
return changed_name;
});
});

ksa 08.09.2017 13:32

Цитата:

Сообщение от rybachok91
Давайте я Вас еще больше рассмешу.

Ты не нас смеши... А себе помоги - сделай нормальный тестовый пример и выкладывай его тут. На нем покажут что к чему, если тебе не понятны словесные объяснения...

rybachok91 08.09.2017 13:39


У меня выводится из базы данных одна строка со значениями: имя, возраст, город. Эти значения помещаются в 3 блока: id="name", id="age", id="city". Строка только одна и каждый блок со своим id. Т.е. не будет по 2 имени и т.д. Или неправильно? И уже потом, когда значения поменяются вручную, при уводе фокуса или нажатием Enter, их нужно так же через ajax сохранить в базе.

rybachok91 08.09.2017 13:42

Цитата:

Сообщение от ksa (Сообщение 464069)
Ты не нас смеши... А себе помоги - сделай нормальный тестовый пример и выкладывай его тут. На нем покажут что к чему, если тебе не понятны словесные объяснения...

Чем плох пример?


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