Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.03.2017, 15:26
Аспирант
Отправить личное сообщение для alexvb Посмотреть профиль Найти все сообщения от alexvb
 
Регистрация: 21.04.2010
Сообщений: 34

вывод после load
Доброго дня! Форумчане, подскажите пожалуйста, почему alert срабатывает раньше, чем идет подгрузка option в select через load?
<select id="ttt"></select>

$('#ttt').load('ajax', {mat : mat}, function(){
            alert("Privet!");
        });

ajax
<? foreach ($view['value'] as $key => $val){ ?> 
<option value="<?=$val['value']?>">
    <?=$val['value']?>
</option>
<? } ?>

Сначала выскакивает alert, а после подгружаются данные в select. А нужно, чтобы данные подгружались, а после с ними можно было работать. Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 23.03.2017, 15:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

alexvb,
хром?
Ответить с цитированием
  #3 (permalink)  
Старый 23.03.2017, 15:43
Аспирант
Отправить личное сообщение для alexvb Посмотреть профиль Найти все сообщения от alexvb
 
Регистрация: 21.04.2010
Сообщений: 34

да в любом, и в хроме в том числе...
Ответить с цитированием
  #4 (permalink)  
Старый 23.03.2017, 15:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

alexvb,
может алерт заменить на console.log()?
Ответить с цитированием
  #5 (permalink)  
Старый 23.03.2017, 16:13
Аспирант
Отправить личное сообщение для alexvb Посмотреть профиль Найти все сообщения от alexvb
 
Регистрация: 21.04.2010
Сообщений: 34

А что это даст? В консоле выводит, но видимо тоже раньше, чем подгружаются <option>ы...
Ответить с цитированием
  #6 (permalink)  
Старый 23.03.2017, 16:49
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от alexvb
Сначала выскакивает alert, а после подгружаются данные в select. А нужно, чтобы данные подгружались, а после с ними можно было работать.
Бивас, тест!

Файл tmp.csp
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	$('#test').load('tmp1.csp',function(){
		alert(this.options.length);
	});
});
</script>
</head>
<body>
<select id='test'></select>
</body>
</html>

Файл tmp1.csp
<option></option>
<option>1</option>
<option>2</option>

У меня все работает!
Алерт показывает 3 штуки. Т.ч. с ними можно работать, как и обещано в документации...
Ответить с цитированием
  #7 (permalink)  
Старый 23.03.2017, 16:58
Аспирант
Отправить личное сообщение для alexvb Посмотреть профиль Найти все сообщения от alexvb
 
Регистрация: 21.04.2010
Сообщений: 34

И у Вас сначала алерт выскакивает, а потом уже можно с данными option работать.... Смысл в том, чтобы в подгружаемом списке один из элементов сделать выбранным (selected). Алерт поставил для теста, что и выявило проблему его первичного выскакивания...
Ответить с цитированием
  #8 (permalink)  
Старый 23.03.2017, 17:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

alexvb,
вы поставьте вместо алерта this.options.selectedIndex = 1 ; или сколько вам нужно.
Ответить с цитированием
  #9 (permalink)  
Старый 23.03.2017, 18:07
Аспирант
Отправить личное сообщение для alexvb Посмотреть профиль Найти все сообщения от alexvb
 
Регистрация: 21.04.2010
Сообщений: 34

рони,
selectedIndex это по порядковому номеру. А по значению можно также сделать?
Ответить с цитированием
  #10 (permalink)  
Старый 23.03.2017, 18:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

alexvb,
this.value = "tra-ta-ta"
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ищу DatePicker с временем, списком выбора месяца и возможностью смены месяца после вы Kri0-Gen jQuery 3 10.07.2012 16:07
Помогите ограничить вывод знаков после запятой в скрипте djonA Общие вопросы Javascript 2 02.05.2012 01:41
Вывод тега <script> после ajax запроса в указанном div`е Dimkus AJAX и COMET 1 27.02.2012 01:41
jqGrid сохранение и восстановление Select после reloadGrid SPavel_74 jQuery 0 14.02.2012 16:04
Как передать что-то после location.replace? Nominus umbra Общие вопросы Javascript 26 23.12.2009 21:50