Добавление в options
Здравствуйте. Получил с помощью ajax данные, поместил их в <select class="form-control" id="select_device_list"></select> $("#select_device_list").append( $(add_element)) в браузере список отображается, но вот если нужно получить значение выбранного пункта, var device_default = $("select#select_device_list").val(); то jquery возвращает null. Как поремонтировать?
|
tramX,
:no: <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>append demo</title> <script src="http://code.jquery.com/jquery-1.10.2.js"></script> </head> <body> <select id="select_device_list" name="" size="1"></select> <script> $( "#select_device_list" ).append( "<option value='f'>f</option><option value='a'>a</option>" ); alert($( "#select_device_list" ).val()); </script> </body> </html> |
Я это и делаю, только в цикле.
for (var i in data) { //Наполняем список элементами.
add_element = "<option value="+i+">"+data[i]+"</option>";
$("#select_device_list").append(add_element);
}
В браузере отображаются значения в списке. Но если нажать просмотр кода страницы то select оказывается пустой. И если я хочу подключить обработчик к этому select, то не получаю значения из select а поучаю null |
tramX,
:-?
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>append demo</title>
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<select id="select_device_list" name="" size="1"></select>
<script>
var data = [1,2,3], add_element;
for (var i in data) { //Наполняем список элементами.
add_element = "<option value="+i+">"+data[i]+"</option>";
$("#select_device_list").append(add_element);
}
//$( "#select_device_list" ).append( "<option value='f'>f</option><option value='a'>a</option>" );
alert([$( "#select_device_list" ).val(),$( "body" ).html()]);
</script>
</body>
</html>
|
alert([$( "#select_device_list" ).val(),$( "body" ).html()]);
html код выводится а список все равно пустой. |
tramX,
пишите код делайте макет Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Есть форма https://bitbucket.org/tramX/pythonix...tml?at=default
Есть jquery https://bitbucket.org/tramX/pythonix....js?at=default который обрабатывает эту форму. Все вроде работает. Но #select_device_list наполняется динамически, и не хранит значения в коде. |
tramX,
медитируйте на тему асинхронность
var device_default;
var physical_network_default = $("select#physical_network").val();
var url_request = "/adminz_get_devices/"+physical_network_default+"/";
$.get(url_request, function(data) { //Выполняем запрос на получение списка устройств.
//$('option', "#select_device_list").remove(); //Удаляем элементы из списка
for (var i in data) { //Наполняем список элементами.
var add_element = "<option value="+i+">"+data[i]+"</option>";
$("#select_device_list").append(add_element);
};
$('#device_list').show(500);
device_default = $("select#select_device_list").val();// сюда же вызов для заполнения другого селекта $.get ...
});
заполнили селект -- потом получили данные -- а ненаоборот строка 24 сработает раньше чем придёт ответ с сервера в строку 10 |
|
tramX,
ок! |
| Часовой пояс GMT +3, время: 17:08. |