sabato 24 agosto 2013

javascript: come selezionare un valore(value) di una select conoscendo il testo(text)

Nel e-shop ke sto sviluppando per integrare una parte flash con l' html form ho bisogno di selezionare un valore di una select con una chiamata ad una funzione javascript.
Non conosco pero' a priori il value, ma solo una parte del text dell'opzione.
Vediamo la soluzione adottata.

i parametri da passare sono:
- l'id del select
- il testo contenuto

In pratica la select contiene opzioni del tipo "bianco_ffffff", io voglio poterlo selezionare passando solo il codice colore "ffffff"

function SelectValueByTextContained(selId, val) {
    var sel = document.getElementById(selId);
    for(var i = 0, j = sel.options.length; i < j; ++i) { // scorriamo tutte le opzioni
        if (sel.options[i].innerHTML.indexOf(val)>=0) { // vediamo se il testo passato e' contenuto
           sel.selectedIndex = i; //in tal caso selezioniamo l'opzione e usciamo dal ciclo
           break;
        }
    }
}

Nel caso avessimo piu' opzioni ke contengono il testo viene selezionata solo la prima.

Se avessimo voluto fare un confronto di uguaglianza avremmo dovuto usare
        if(sel.options[i].innerHTML === val) {

Nessun commento:

Posta un commento