Показать сообщение отдельно
  #1 (permalink)  
Старый 10.09.2014, 22:46
Аспирант
Отправить личное сообщение для Round Посмотреть профиль Найти все сообщения от Round
 
Регистрация: 08.04.2012
Сообщений: 49

.change для динамически созданных элементов
Входные условия:

Циклом в php создается пакет элементов select c уникальными айдишниками.

<select id="select_A">
    <option value="0">0000</option>
    <option value="1">1111</option>
    ...
    <option value="n">....</option>
</select>

<select id="select_B">
    <option value="a">0000</option>
    <option value="b">1111</option>
    ...
    <option value="n">....</option>
</select>

<select id="select_C">
    <option value="A">0000</option>
    <option value="B">1111</option>
    ...
    <option value="n">....</option>
</select>


Есть скрипт, который слушает событие .change ...

вот скрипт для одно айдишника

$(document).ready(function() {
	$('#select_A').change(function() {    

	    var selectId = $('#select_A :selected').val();

		$.ajax({

		    type: "POST",
		    url: "ajax.php",
		    data: "id=" + selectId,
		    dataType: 'json',
		    success: function(data) {

				var obj = $.parseJSON(data);      

				$.each(data, function(i, item) {
				    var id = (data[i].id);
				    var name = (data[i].name);

				    $("#result_0_A").val(id + $('#result_0_A').val().replace("placeholder", data));
				    $("#result_1_A").val(name + $('#result_1_A').val().replace("placeholder", data));

				});
			}
		});	
	});
});


... по событию вставляет полученные из базы данные в созданные элементы со своими уникальными айдишниками.

Вот разметка

<div>
	<input id="result_0_A" value="" placeholder=" ">
	<input id="result_1_A" value="" placeholder=" ">
</div>

<div>
	<input id="result_0_B" value="" placeholder=" ">
	<input id="result_1_B" value="" placeholder=" ">
</div>

<div>
	<input id="result_0_C" value="" placeholder=" ">
	<input id="result_1_C" value="" placeholder=" ">
</div>



Вопрос:

как можно оптимизировать код что бы скрипт обрабатывал любое количество динамически созданных элементов?

Сейчас код работает, но слушает только один элемент и способен заполнить данными только одну пачку инпутов. Этих элементов может быть много (количество не известно).

Любые идеи и советы принимаются с благодарностью.


PS. В скрипте оставил кусок ajax что бы не пояснять откуда берутся данные и почему массив... и т.д. в общем на него можно не обращать внимания - он свою работу делает.

Последний раз редактировалось Round, 10.09.2014 в 22:50.
Ответить с цитированием