Консультация № 183685
21.06.2011, 09:22
52.47 руб.
0 1 1
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
Добрый день!
Есть форма, в которой поисковый запрос идет через Ajax.

Код:
<form id="myForm" action="form.php" method="post">
<label for="q">Поиск:</label>
<input name="q" autofocus autocomplete="off" type="text" />
<input type="submit" name="submit" value="Submit" />
<input type="hidden" name="action" value="doAjaxSearch" />
</form>

<div id="output">AJAX-ответ от сервера заменит этот текст.</div>

<script type="text/javascript">
$(document).ready(function(){
var options = {
target: "#output",
timeout: 3000
};

$('#myForm').submit(function() {
$(this).ajaxSubmit(options);
return false;
});
});

</script>


Файл form.php возвращает другую форму
Код:
<select name=”example”>
<option value=”1”>1</option>
<option value=”2”>2</option>
</select>


Это все работает.
Мне необходимо сделать так, чтобы при выборе какого-то значения из возвращенного списка под таблицей появлялись соответствующие поля.
Например, для <option value=”1”>1</option> появлялось бы 1-1, 1-2 (условно), для <option value=”2”>2</option> 2-1, 2-2 и так далее.
Проблема в том, что JavaScript не выполняется в возвращенном Ajax-ответе.

Обсуждение

Неизвестный
21.06.2011, 11:12
общий
это ответ
Здравствуйте, Finrod!
Нужно заново привязать обработчик (submit, или какие ещё у вас там есть) к вновь созданному элементу html.
Проблема в том, что обработчик не привязывается автоматически к элементам, которые созданы после него. Они для него не существуют. Он видит те элементы, что созданы и загружены до него самого.
Форма ответа