Добавление в 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:58. |