Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.06.2015, 20:55
Новичок на форуме
Отправить личное сообщение для spassmacher Посмотреть профиль Найти все сообщения от spassmacher
 
Регистрация: 08.06.2015
Сообщений: 3

Трудности с инпутами
Доброго времени!

Друзья у меня проблема в следующем...

делаю разметку

<form id="form">
<div>
<input type="text" id="text1">
<input type="text" id="text2">
</div>
</form>

после выполняю alert который висит на id="text1" change.

$(function () {


$("#text1").change(function(){
alert("OK");
addNewRow();
});
});

function addNewRow(){
var row = '<div>'+
'<input type="text" id="text1">'+
'<input type="text" id="text2">'+
'</div>';
$("#form").append(row);

}


И после этого добавляю новую строку методом append, но вот вторая строка уже не реагирует на событие.

В консоли ошибок нет.

Подскажите в чем ошибка?

Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 08.06.2015, 21:00
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Всё потому, что кто-то плохо учил HTML. У тебя повторяются id, а так быть не должно.
Ответить с цитированием
  #3 (permalink)  
Старый 08.06.2015, 21:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Сообщение от spassmacher
Подскажите в чем ошибка?
в том что новым элементам никто ничего не назначил, как им реагировать.

выход делегирование через on
$("form").on("change", "#text1",function(){
 alert("OK");
 addNewRow();
 });


и конечно одинаковые id это плохо, замените id на class
Ответить с цитированием
  #4 (permalink)  
Старый 08.06.2015, 22:12
Новичок на форуме
Отправить личное сообщение для spassmacher Посмотреть профиль Найти все сообщения от spassmacher
 
Регистрация: 08.06.2015
Сообщений: 3

Спасибо всем! Огромное!
Ответить с цитированием
  #5 (permalink)  
Старый 09.06.2015, 12:15
Новичок на форуме
Отправить личное сообщение для spassmacher Посмотреть профиль Найти все сообщения от spassmacher
 
Регистрация: 08.06.2015
Сообщений: 3

еще один вопросик.

в этом коде

<tbody id="inv_details">
<tr id="1">
<th><b class="no">1</b></th>
<th><input type="text" name="id[]" class="id"></th>
<input type="hidden" name="rowID" class="rowID" value="1">
<th><input type="text" name="title[]" class="title"></th>
<th><input type="text" name="quantity[]" class="quantity"></th>
<th><input type="text" name="price[]" class="price"></th>
<th><input type="text" name="amount[]" class="amount"></th>
</tr>
</tbody>

мне нужно повесить событие change на class="price" и при этом получить в переменную значение input type="hidden" name="rowID" class="rowID" value="1" но не могу использовать <tr id="1"> в качестве селектора, он меняется постоянно.

смысл в том, что я хочу знать на каком из полей в таблице произошло событие.

Друзья, возможно вопросы слишком детские, но всего лишь неделя как я знаком с jQuery, надеюсь на ваше терпение и понимание
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Трудности с setInterval, setTimeout tanto39 jQuery 5 28.06.2014 19:03
Трудности в скрытии части текста от Google Hanuman (X)HTML/CSS 4 17.08.2010 12:28
JavaScript, делимся своим опытом изучения, как долго и какие трудности были у вас Чернобыль Общие вопросы Javascript 10 31.12.2009 21:25