Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Трудности с инпутами (https://javascript.ru/forum/dom-window/56288-trudnosti-s-inputami.html)

spassmacher 08.06.2015 20:55

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

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

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

<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, но вот вторая строка уже не реагирует на событие.

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

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

Спасибо!

Safort 08.06.2015 21:00

Всё потому, что кто-то плохо учил HTML. У тебя повторяются id, а так быть не должно.

рони 08.06.2015 21:19

Цитата:

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

в том что новым элементам никто ничего не назначил, как им реагировать.

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


и конечно одинаковые id это плохо, замените id на class

spassmacher 08.06.2015 22:12

Спасибо всем! Огромное!

spassmacher 09.06.2015 12:15

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

в этом коде

<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, надеюсь на ваше терпение и понимание :)


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