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)

Nexus 08.09.2017 13:43

Цитата:

Сообщение от rybachok91
Чем плох пример?

HTML'я нет.

ksa 08.09.2017 13:44

Цитата:

Сообщение от rybachok91
Чем плох пример?

Больше вопросов не имею... :(

rybachok91 08.09.2017 13:49

Цитата:

Сообщение от ksa (Сообщение 464074)
Больше вопросов не имею... :(

Почему? Вы скажите. Вот написали выше, что нужен HTML. Все ясно. А про моветон и фотоаппарат, извините. Наверно, со мной что-то не так.

Dilettante_Pro 08.09.2017 13:53

<div id="name">Click me!</div>
<script src='https://code.jquery.com/jquery-latest.js'></script>
<script>
$("#name").click(function() {
    $(this).replaceWith('<input type="text" name="correct_name" id="cor_name" value="33" size="30">');	

    $("#cor_name").keyup(function(){
         changed_name = $(this).val();
         if (event.keyCode == 13) {
              alert(changed_name);
         }
    });
});
</script>

Nexus 08.09.2017 13:53

rybachok91, нужно поменять селектор элемента, на который должны обработчики вешаться.
$('input').on('keydown',function(e){
	var ENTER_KEYCODE=13;
	if(e.keyCode==ENTER_KEYCODE || e.charCode==ENTER_KEYCODE){
		$(this).trigger('blur');
	}
}).blur(function(){
	//Your code
});


Upd. это к посту №9

rybachok91 08.09.2017 13:56

Цитата:

Сообщение от Nexus (Сообщение 464073)
HTML'я нет.

В этой форме ввожу значения для поиска в базе. По этим значениям возвращается ответ, выводится в div id="output_data". Далее значения можно отредактировать и отправить измененные обратно в базу.

<div class="main">
<h2>ИНФОРМАЦИЯ О ПОЛЬЗОВАТЕЛЯХ</h2>
<p id="input_text">Введите имя и возраст пользователя и щелкните по кнопке "Найти"</p>
<div id="output_data"></div>
<form action="add_new_user.php" method="post" id="input_data">
<label for="user_name">Имя:</label>
<input type="text" name="user_name" value="" size="30"><br/>
<label for="user_age">Возраст:</label>
<input type="text" name="user_age" value="" size="30"><br/>
<input type="button" id="find" value="Найти">
</form>
</div>

Nexus 08.09.2017 13:57

Dilettante_Pro,
$("#cor_name").keyup(function(*!*eventObject*/!*){
         changed_name = $("#cor_name").val();
         if (*!*event*/!*.keyCode == 13) {
              alert(changed_name);
         }
    });

Nexus 08.09.2017 13:59

Цитата:

Сообщение от rybachok91
По этим значениям возвращается ответ, выводится в div id="output_data". Далее значения можно отредактировать и отправить измененные обратно в базу.

Обработчики на полученные поля накладываются после их размещения на странице?

Dilettante_Pro 08.09.2017 14:00

Nexus,
Осталось от текста ТС. Почистил.

rybachok91 08.09.2017 14:18

Цитата:

Сообщение от Nexus (Сообщение 464083)
Обработчики на полученные поля накладываются после их размещения на странице?

Я пока разбираюсь с одним полем, куда выводится значение имени. Сначала в div, потом при клике на div появляется поле input. В нем видно значение из базы, которое можно редактировать. Я его редактирую, далее с помощью функций обработчиков событий chnge или keyup возвращаю. Обработчика два, записаны отдельно, потому что не получается через on(). В alert измененное значение выводится. Проблема в том, что не получается вытащить значение измененного поля input в переменную, чтобы отправить обратно в базу. Первая проблема была проблема с последовательностью событий. Мне так и не понятно, как она разрешилась. События после клика на блок и изменения имени неожиданно заработали, хотя последовательность записи осталась прежней. Вот это не ясно было, почему так. Скажите, может я что-то не так объясняю? Или код нужно придумывать отдельно для примера, а не рабочий прилагать? Я первый раз на форуме пишу:(


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