Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / В Chrome не работает автоматический выбор элемента списка (select) / 24 сообщений из 24, страница 1 из 1
23.04.2013, 05:06
    #38235899
Yed
Yed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Chrome не работает автоматический выбор элемента списка (select)
Здравствуйте! В хроме при нажатии на кнопку "btRandom" не происходит смена элемента списка "sel". В IE / Opera все отлично работает. Как адаптировать данный код под Хром? Спасибо.
Вот код.
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
<!DOCTYPE html>
<html lang="ru">
<head>
	<meta charset="utf-8">
	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>	

	<script type="text/javascript">
		$(document).ready(function(){
			// Произвольный массив значений
			var values = new Array(21, 17, 12, 47, 152);
			// Заполним <select>
			for (var i=0; i < values.length; i++){
				$("#sel").append( $("<option value='" + values[i] +"'>value = " + values[i] + "</option>") );
			};
			// При нажатии на кнопку получим случайный индекса массива и выберем этот элемент в списке
			$("#btRandom").click(function(){
				var randomIdx = Math.round( Math.random() * (values.length-1) );
				$("#sel [value='" + values[randomIdx] + "']").attr("selected", "selected");
				$("#randomResult").append("Index:" + randomIdx + ", Value:" + values[randomIdx] + "<br>");
			});			
		});
	</script>
</head>
<body>
	<select id="sel"></select>
	
	<button id="btRandom">Select random</button>
	<div id="randomResult"></div>
</body>
</html>
...
Рейтинг: 0 / 0
23.04.2013, 07:08
    #38235920
ЫLL HEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Chrome не работает автоматический выбор элемента списка (select)
select не имеет атрибута value
...
Рейтинг: 0 / 0
23.04.2013, 08:51
    #38235963
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Chrome не работает автоматический выбор элемента списка (select)
YedКак адаптировать данный код под Хром?
Как вариант...

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
$(document).ready(function(){
	// Произвольный массив значений
	var values = new Array(21, 17, 12, 47, 152);
	// Заполним <select>
	for (var i=0; i < values.length; i++){
		$("#sel").append( $("<option value='" + values[i] +"'>value = " + values[i] + "</option>") );
	};
	// При нажатии на кнопку получим случайный индекса массива и выберем этот элемент в списке
	$("#btRandom").click(function(){
		var randomIdx = Math.round( Math.random() * (values.length-1) );
		document.getElementById('sel').selectedIndex=randomIdx;
		$("#randomResult").append("Index:" + randomIdx + ", Value:" + values[randomIdx] + "<br>");
	});			
});
</script>
</head>
<body>
<select id="sel"></select>
<button id="btRandom">Select random</button>
<div id="randomResult"></div>
</body>
</html>
...
Рейтинг: 0 / 0
23.04.2013, 08:51
    #38235964
ЫLL HEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Chrome не работает автоматический выбор элемента списка (select)
ЫLL HEADselect не имеет атрибута valueнаверное неправ. у вас доктайп хтмл5 указывает, а для него есть это
т.е. через dom можно установить

но атрибута selected точно нет )

так работает
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<script type="text/javascript">
	$(document).ready(function(){
		// Произвольный массив значений
		var values = new Array(21, 17, 12, 47, 152);
		// Заполним <select>
		for (var i=0; i < values.length; i++){
			$("#sel").append( $("<option value='" + values[i] +"'>value = " + values[i] + "</option>") );
		};
		// При нажатии на кнопку получим случайный индекса массива и выберем этот элемент в списке
		$("#btRandom").click(function(){
			var randomIdx = Math.round( Math.random() * (values.length-1) );
			// $("#sel [value='" + values[randomIdx] + "']").attr("selected", "selected");
                        document.getElementById("sel").selectedIndex = randomIdx; // другие варианты не завелись
			$("#randomResult").append("Index:" + randomIdx + ", Value:" + values[randomIdx] + "<br>");
		});			
	});
</script>
...
Рейтинг: 0 / 0
23.04.2013, 08:52
    #38235967
ЫLL HEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Chrome не работает автоматический выбор элемента списка (select)
krvsa,
...
Рейтинг: 0 / 0
23.04.2013, 08:59
    #38235969
не idx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Chrome не работает автоматический выбор элемента списка (select)
ЫLL HEAD...
так работает
Код: javascript
1.
2.
3.
...
document.getElementById("sel").selectedIndex = randomIdx;
...



так требуется выборка Option не по индексу, а по значению в value.
может так попробовать?
Код: javascript
1.
$("#sel option[value='" + values[randomIdx] + "']").attr("selected", "selected");
...
Рейтинг: 0 / 0
23.04.2013, 09:16
    #38235986
ЫLL HEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Chrome не работает автоматический выбор элемента списка (select)
не idxтак требуется выборка Option не по индексу, а по значению в value.
может так попробовать?
Код: javascript
1.
$("#sel option[value='" + values[randomIdx] + "']").attr("selected", "selected");


да. с индексом пролетел )
но как с этим быть .attr("selected", "selected") ? это не живет в select
так тоже не хочет
Код: javascript
1.
$("#sel").attr("value", values[randomIdx])
...
Рейтинг: 0 / 0
23.04.2013, 09:17
    #38235987
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Chrome не работает автоматический выбор элемента списка (select)
не idxтак требуется выборка Option не по индексу, а по значению в value.
Ты программку автора внимательней посмотри... Потом примерчик мой запусти... Оно глядишь многое и прояснится.
...
Рейтинг: 0 / 0
23.04.2013, 09:19
    #38235990
ЫLL HEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Chrome не работает автоматический выбор элемента списка (select)
ЫLL HEADс индексом пролетелда нифига не пролетел )) усе правильно пашет. запутали вы меня )
там же что индекс массива вернет значение, что индекс селекта вернет тожэ самое значение
...
Рейтинг: 0 / 0
23.04.2013, 09:33
    #38236009
не idx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Chrome не работает автоматический выбор элемента списка (select)
krvsaне idxтак требуется выборка Option не по индексу, а по значению в value.
Ты программку автора внимательней посмотри... Потом примерчик мой запусти... Оно глядишь многое и прояснится.
Смотри, в примере автора показана выборка значения value из массива. Да, тут индексы совпадают.
Но в реальности это значение может быть получено из стороннего источника, а массива соответствия value и index вообще нет.
Вот и требуется выбрать в списке <select> строчку с заданным value.
Короче я так понял. Ждем Yed.
...
Рейтинг: 0 / 0
23.04.2013, 09:34
    #38236010
ЫLL HEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Chrome не работает автоматический выбор элемента списка (select)
если забыть про массив и просто выбирать по значению (пусть и из массива, просто других значений нет) то это работает
Код: javascript
1.
document.getElementById('sel').value = values[randomIdx];     
...
Рейтинг: 0 / 0
23.04.2013, 09:37
    #38236018
ЫLL HEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Chrome не работает автоматический выбор элемента списка (select)
но почему через джыквэри не хочет - непонятно (мне) ))
...
Рейтинг: 0 / 0
23.04.2013, 09:47
    #38236038
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Chrome не работает автоматический выбор элемента списка (select)
не idxСмотри, в примере автора ...
Повторюсь.
Смотри... Запусти... И тебе откроется истина!

не idxНо в реальности ...
Пример и есть та самая реальность... Другой у нас нет.
...
Рейтинг: 0 / 0
23.04.2013, 09:48
    #38236041
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Chrome не работает автоматический выбор элемента списка (select)
ЫLL HEADно почему через джыквэри не хочет - непонятно (мне) ))
Это к вопрос Хрому... В других-то работает.
...
Рейтинг: 0 / 0
23.04.2013, 10:07
    #38236071
ЫLL HEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Chrome не работает автоматический выбор элемента списка (select)
krvsa,

покажи что работает в других? у меня и в других не работает

я имею ввиду это (как самое логичное)
Код: javascript
1.
2.
3.
$("#sel").attr("value", values[randomIdx]) 
// или
$("#sel").attr("value", "'"+values[randomIdx]+"'") 


а это
Код: javascript
1.
$("#sel [value='" + values[randomIdx] + "']").attr("selected", "selected");


вообще не должно работать и правильно что в хроме не работает . имхо
...
Рейтинг: 0 / 0
23.04.2013, 11:04
    #38236179
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Chrome не работает автоматический выбор элемента списка (select)
ЫLL HEADпокажи что работает в других?
Я не value имел ввиду... Хотя автор уверяет, что это работает как минимум в Опере...

Я вот про что

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
$(document).ready(function(){
	// Произвольный массив значений
	var values = new Array(21, 17, 12, 47, 152);
	// Заполним <select>
	for (var i=0; i < values.length; i++){
		$("#sel").append( $("<option value='" + values[i] +"'>value = " + values[i] + "</option>") );
	};
	// При нажатии на кнопку получим случайный индекса массива и выберем этот элемент в списке
	$("#btRandom").click(function(){
		var randomIdx = Math.round( Math.random() * (values.length-1) );
		$('#sel option').removeAttr('selected');
		$('#sel option').eq(randomIdx).attr('selected',true);
		$("#randomResult").append("Index:" + randomIdx + ", Value:" + values[randomIdx] + "<br>");
	});			
});
</script>
</head>
<body>
<select id="sel"></select>
<button id="btRandom">Select random</button>
<div id="randomResult"></div>
</body>
</html>



Это работает:
- ИЕ 8
- Опере

Но в ФФ и Хроме непонятно как...
...
Рейтинг: 0 / 0
23.04.2013, 11:25
    #38236236
ЫLL HEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Chrome не работает автоматический выбор элемента списка (select)
krvsa,

вот так у меня работает везде
Код: javascript
1.
2.
3.
4.
5.
	$("#btRandom").click(function(){
		var randomIdx = Math.round( Math.random() * (values.length-1) );
		$('#sel option').removeAttr('selected');
		$('#sel option').eq(randomIdx).prop('selected',true);//attr('selected','selected');
		$("#randomResult").append("Index:" + randomIdx + ", Value:" + values[randomIdx] + "<br>");
...
Рейтинг: 0 / 0
23.04.2013, 11:31
    #38236252
ЫLL HEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Chrome не работает автоматический выбор элемента списка (select)
так тожэ везде работает
Код: javascript
1.
2.
3.
4.
5.
	$("#btRandom").click(function(){
		var randomIdx = Math.round( Math.random() * (values.length-1) );
                $('#sel').prop('value',values[randomIdx]);
		$("#randomResult").append("Index:" + randomIdx + ", Value:" + values[randomIdx] + "<br>");
	});
...
Рейтинг: 0 / 0
23.04.2013, 11:32
    #38236253
ЫLL HEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Chrome не работает автоматический выбор элемента списка (select)
кароче, через проперти робит
...
Рейтинг: 0 / 0
23.04.2013, 11:51
    #38236302
ЫLL HEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Chrome не работает автоматический выбор элемента списка (select)
собака порылась гдето здесь _http://javascript.ru/tutorial/dom/attributes#dom-atributy-vs-dom-svoystva
...
Рейтинг: 0 / 0
23.04.2013, 13:02
    #38236444
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Chrome не работает автоматический выбор элемента списка (select)
ЫLL HEADкароче, через проперти робит
Ну видал как!

- От Розарио Агро еще никто не уходил! (с) к/ф Приключение итальянцев в России
...
Рейтинг: 0 / 0
23.04.2013, 13:08
    #38236455
ЫLL HEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Chrome не работает автоматический выбор элемента списка (select)
krvsa,

пришел, увидел, наследил (с) народное
...
Рейтинг: 0 / 0
24.04.2013, 03:06
    #38237513
Yed
Yed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Chrome не работает автоматический выбор элемента списка (select)
Всем спасибо за ответы!
Извиняюсь, что не уточнил сразу. Но вопрос был именно про выбор option по значению value . Там у меня хранятся ID загруженных данных с сервера. Сами строчки могут быть отсортированы, удалены, отключены, т.е. к индексу selectedIndex привязаться нельзя (я не знаю, какой индекс в данный момент времени у определенного value).

Воспользовалс яэтим вариантом по стандарту:
ЫLL HEADесли забыть про массив и просто выбирать по значению (пусть и из массива, просто других значений нет) то это работает
Код: javascript
1.
document.getElementById('sel').value = values[randomIdx];     


Все работает!
...
Рейтинг: 0 / 0
24.04.2013, 08:31
    #38237561
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В Chrome не работает автоматический выбор элемента списка (select)
YedНо вопрос был именно про выбор option по значению value .
Если value у тебя в массиве и селект заполняется из него - используй таки индекс.
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / В Chrome не работает автоматический выбор элемента списка (select) / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]