Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Обращение к свойству value и text поля select (https://javascript.ru/forum/misc/7971-obrashhenie-k-svojjstvu-value-i-text-polya-select.html)

Flashwalk 01.03.2010 10:41

Обращение к свойству value и text поля select
 
У меня такой код для селектбоксов:
addOption(document.drop_list.Category2,dd1, dd1);

function SelectSubCat2(){

var c2 = document.drop_list.Category2.text;
var dd1 = "CD-R";

if(c2 == dd1){
addOption(document.drop_list.Category3,sel3, sel3);
addOption(document.drop_list.Category3,bp1, b1);
addOption(document.drop_list.Category3,bp2, b2);
}

function addOption(selectbox, value, text ){
	var optn = document.createElement("OPTION");
	optn.text = text;
	optn.value = value;
	if(text==sel0|text==sel1|text==sel2|text==sel3){
	optn.setAttribute("selected","selected");
	}
	selectbox.options.add(optn);
}
Если я указываю переменную c2 как свойство - text, то функция не работает, строки не добавляются. :(
А если её указать как value
var c2 = document.drop_list.Category2.value;
функция работает.

vk65535 01.03.2010 11:15

Это свойство readOnly.
Вы можете воспользоваться свойством textContent (innerText у Internet Exploiter). Либо свойством innerHTML. Либо добавлять опции можно еще так:
select.options.add(new Option(text, value))

Flashwalk 01.03.2010 12:30

Спасибо.
Но я поясню проблему: Не работает if в функции SelectSubCat2(), если обраащаться к text. Т.е. если сравнивать document.drop_list.Category2.text , когда селктбокс Category2 имеет значение текста "CD-R", и переменную dd1 , которой присвоен текст "CD-R" равенства не получается.

vk65535 01.03.2010 12:45

У select-а нет свойства text.
Вам нужно сначала получить ссылку на выбранную опцию, затем обратиться к ее полю text:
var c2 = document.drop_list.Category2;
c2 = c2.selectedIndex !== -1 ? c2.options[c2.selectedIndex].text : '';

Flashwalk 01.03.2010 13:01

Вот оно как Оо
Спасибо. Пойду кормить мозги.


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