Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Вопрос по SELECT (https://javascript.ru/forum/jquery/6767-vopros-po-select.html)

xela1980 20.12.2009 22:38

Вопрос по SELECT
 
Ребят вопрос такой есть два selecta c одинаковым набором optionов. Я хочу в одном селекте выбрать .значение выделеного optiona (value) Делаю так
var x=$('#myselect option:selected').val();

А затем на основании этого значения в другом селекте сделать выделенным элемент с соответсвующим value.
То есть как то так но понимаю что неправильно
$(#myselect  option: x).attr('selected', 'yes');

Как записать это правильно куда втулить это значение
Спасибо.

xela1980 20.12.2009 22:40

Пардон опечка вторая строка из примера Там другой айди на самом деле
$(#myselect2 option: x).attr('selected', 'yes');

Tim 20.12.2009 23:59

Бросьте вы этот jQury. Нпишите функцию доступа к элементу по ID чтобы не писать всё время document.getElementById
function $(i) {
	return document.getElementById(i);
}


Не нравится ID можно getElementsByName, getElementsByTagName или getElementsByClass. A дальше, используйте свойство value.
$("select_1").value = $("select_2").value;


Всё, 4 строки и готово. И не надо библиотеки всякие подгружать.

xela1980 21.12.2009 07:37

Да нет ID это все хорошо конечно но нужные мне значения храняться в value. А это атрибут И мне нужно сравнить по значению атрибута. То есть как поставить нужный option выделенным по value? Cелектед чего? В первом сработало событие считалось что выделен был option c value ="25" ну и как теперь поставить во втором селекте выделения для optiona c value="25"
По атрибутам в мануале есть такой пример

$("input[name='man']").val("has man in it!");

Делал по аналогии (где х переменная где хранитсья значение value из первого селекта)

$('#myselect[value=x]").).attr('selected', 'yes'); Не работает. Как же уставноить выделиние по атрибуту.

Tim 21.12.2009 13:26

Чесно говоря я не до коонца понял задачу. Может быть это моможет?
<select id="select_1">
	<option value="001">Option_001</option>
	<option value="002">Option_002</option>
	<option value="003">Option_003</option>
	<option value="004">Option_004</option>
	<option value="005">Option_005</option>
</select>

<br/><br/>

<select id="select_2">
	<option value="001">Option_001</option>
	<option value="002">Option_002</option>
	<option value="003">Option_003</option>
	<option value="004">Option_004</option>
	<option value="005">Option_005</option>
</select>

<br/><br/>

<input type="button" value="SELECT" onclick="my_select()"/>

<script type="text/javascript">
<!--
function $(i) {
	return document.getElementById(i);
}

function my_select() {
	$("select_2").value = $("select_1").value;
}
// -->
</script>


После нажатия кнопки SELECT во втором селекте устанавливается такое же значение как и в первом. Вместо кнопки можно использовать обработчик onchange="my_select()" т.е. <select id="select_1" onchange="my_select()">

И бросьте вы наконец этот jQury.

Ferroks 21.12.2009 19:33

выделяет нужные селекты и чекбоксы

$("#single").val("Single2");
$("#multiple").val(["Multiple2", "Multiple3"]);
$("input").val(["check1","check2", "radio1" ]);

<select id="single">
<option>Single</option>
<option>Single2</option>
</select>
<select id="multiple" multiple="multiple">
<option selected="selected">Multiple</option>
<option>Multiple2</option>
<option selected="selected">Multiple3</option>
</select><br/>
<input type="checkbox" name="checkboxname" value="check1"/> check1
<input type="checkbox" name="checkboxname" value="check2"/> check2
<input type="radio" name="r" value="radio1"/> radio1
<input type="radio" name="r" value="radio2"/> radio2

xela1980 21.12.2009 22:34

Спасибо ребят большое за помощь. Но вот так заработало. За что люблю этот квери. две строчки кода и все.
Сперва считывваю в первом селекте значениe value выделенного optiona
var x=$('#myselect option:selected').val();
и затем во втором селекте делаю выделенным option у которого value рано x.
$('#myselect2).val(x).attr('selected', 'yes');

Tim 21.12.2009 23:55

Зря вы мой код не возжелали. :(


Часовой пояс GMT +3, время: 06:59.