Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Pobranie wartości z pola select
Forum PHP.pl > Forum > Przedszkole
Blame
Mam taką oto funkcję:
CODE
function doCOLOR(obj)
{
textarea = document.getElementById(obj);
var url = document.getElementById("kolor").value;
var scrollTop = textarea.scrollTop;
var scrollLeft = textarea.scrollLeft;

if (url != '' && url != null) {

if (document.selection)
{
textarea.focus();
var sel = document.selection.createRange();

if(sel.text==""){
sel.text = '[/color]';
} else {
sel.text = '' + sel.text + '';
}

//alert(sel.text);

}
else
{
var len = textarea.value.length;
var start = textarea.selectionStart;
var end = textarea.selectionEnd;

var sel = textarea.value.substring(start, end);

if(sel==""){
var rep = '';
} else
{
var rep = '[color=' + url + ']' + sel + '
';
}
//alert(sel);

textarea.value = textarea.value.substring(0,start) + rep + textarea.value.substring(end,len);


textarea.scrollTop = scrollTop;
textarea.scrollLeft = scrollLeft;
}
}
}


a to mam w pliku html:
  1. <select name="kolory">
  2. <option id="kolor" value="black">Czarny</option>
  3. <option id="kolor" value="white">Biały</option>
  4. <option id="kolor" value="red">Czerwony</option>
  5. <option id="kolor" value="green">Zielony</option>
  6. <option id="kolor" value="yellow">Żółty</option>
  7. <option id="kolor" value="blue">Niebieski</option>
  8. </select>

Wiem, że kod jest nieprawidłowy, dlatego proszę o pomoc. Chciałbym, żeby po wywołaniu funkcji doCOLOR wstawiany był znacznik "[color=]" z aktualnie wybranym kolorem w polu select a nie z pierwszą pozycją(w tym wypadku czarny). Jak to zrobić? Pomożecie?
thek
To Select ma mieć przypisane id, a nie pola Option. Option są "dziećmi" Select i jeśli zostanie pokazany poprzez id odpowiedni Select to dzięki temu będziesz mógł wyciągnąć jaki Option wybrano. Pamiętaj, że id musi być unikatowe w całym dokumencie. Używanie choćby dwukrotne tego samego id jest błędem i każdy walidator Ci to wytknie jako niepoprawność.
Blame
Dzięki! Raczkuje w temacie więc twoja pomoc bardzo mi się przydała. Mam jeszcze jedno pytanie. Jak zrobić, żeby w/w funkcja miała miejsce po kliknięciu na dane pole option?
Fafu
w select daj event onchange
MateuszS
chodzi Ci o cos takiego?

  1. <script type="text/javascript">
  2. function kolor() {
  3. var textarea=document.getElementById('area').innerHTML;
  4. var kolor=document.getElementById('kolor').value;
  5. var new_text='[ color='+kolor+']'+textarea+'[ /color]'; // usun z tad spacje u siebie bo na forum sie zle wyswietla
  6. document.getElementById('area').innerHTML=new_text;
  7. }
  8.  
  9. <select id="kolor" name="kolory">
  10. <option onClick="kolor()" value="black">Czarny</option>
  11. <option onClick="kolor()" value="white">Biały</option>
  12. <option onClick="kolor()" value="red">Czerwony</option>
  13. <option onClick="kolor()" value="green">Zielony</option>
  14. <option onClick="kolor()" value="yellow">Żółty</option>
  15. <option onClick="kolor()" value="blue">Niebieski</option>
  16. </select><br />
  17. <textarea id="area">Tu jest jakiś tekst który mozesz wziasc w [color=] sadad</textarea><br />
  18.  
thek
Pamiętaj, że zdarzenia masz dla "rodzica" czyli dla Select smile.gif Czyli jak mój poprzednik zaznaczył zdarzenie onchange dla Select )
  1. <select id="kolor" name="kolory" onchange="kolor()">
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.