[JavaScript] Pobranie wartości z listy rozwijanej

0

Witam.

Czy istnieje możliwość pobrania z listy wybranego napisu a nie wartości. Np.:
Mam:

<option value="wartość">dane</option>

I chciałbym aby javascript pobrał napis dane a nie wartość.

0

Tak. Jeśli listę rozwijaną masz w zmiennej select, to do aktualnie wybranej opcji możesz się dostać w następujący sposób:

var selectedOption = select.options[select.selectedIndex];
var selectedText   = selectedOption.text;  // 'dane'
var selectedValue  = selectedOption.value; // 'wartość'

Jak widzisz, możesz łatwo pobierać zarówno wartość (value -- u Ciebie 'wartość'), jak i tekst opcji (u Ciebie 'dane').

0
bswierczynski napisał(a)

Tak. Jeśli listę rozwijaną masz w zmiennej select, to do aktualnie wybranej opcji możesz się dostać w następujący sposób:

var selectedOption = select.options[select.selectedIndex];
var selectedText   = selectedOption.text;  // 'dane'
var selectedValue  = selectedOption.value; // 'wartość'

Jak widzisz, możesz łatwo pobierać zarówno wartość (value -- u Ciebie 'wartość'), jak i tekst opcji (u Ciebie 'dane').

Dzięki o to chodziło.
Ale mam jeszcze jedno pytanie związane z tym. Czy jest możliwość za pomocą javascript zmiany wybranego elementu na określony text. Czyli mam np dwa pola:

<option value="wartość1">dane1</option> <option value="wartość2">dane2</option>

I spowodować aby za pomocą przycisku ustawiło wartość dane2 nie biorąc pod uwagę wartości ?

0

I nie biorąc pod uwagę indeksu.

0

@atuzar:
Rozumiem że chodzi Ci o to, by kod po stronie serwera (np. PHP, C#...) odczytał wartość selecta jako "dane1", a nie "wartość1".

To mi trochę śmierdzi tym, że chyba coś masz tam rozwiązane nie tak jak trzeba. Nigdy nie musiałem robić czegoś takiego. Czemu w value nie możesz mieć od razu właściwych wartości?

Takie coś da się zawsze zrobić, ale to będzie przekombinowane. Za pomocą JavaScriptu możesz np. ustawić wartość atrybutu value na tekst wybranego pola. Czyli:

selectedOption.value = selectedOption.text;

To jednak jest dziwaczne i zaciera wartość value.

edit:
Nie rozumiem o co chodzi "nie biorąc pod uwagę indeksu". Chcesz to zatrzeć wszystkim polom? To weź od razu po stronie serwera wygeneruj właściwy kod, zamiast modyfikować to w locie w JavaScripcie (wtedy musiałbyś użyć pętli po select.options).

0

No trochę sobie namieszałem ale już rozwiązałem ten problem wykorzystując wartość. A odnośnie mojego problemu to trochę długa historia. Wielkie dzięki za pomoc i pozdrawiam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1