2010-10-07 18 views

risposta

2

è possibile farlo con jQuery

Utilizzare il Attribute Equals Selector

vedono in

Check if value is in select list with JQuery

in javascript si può correre come

for (var i=0; i<document.getElementById('mySelect').options.length; i++) 
      { 
      if (document.getElementById('mySelect').options[i].text == seachtext) 
      { 
      alert('found'); 
      break; 
      } 
     } 
+2

Non credo che il PO è alla ricerca di una soluzione jQuery ... – chigley

+0

Nemmeno io stava giocando con una sorta di aderire e Option.prototype. Ho affrontato più problemi di quanto mi aspettassi :) – mplungjan

+0

Ho appena riletto la domanda, e mentre è ovviamente possibile con puro JavaScript, utilizzerei sicuramente un approccio di jQuery perché altrimenti diventerebbe disordinato! – chigley

7

Non è possibile estendere i metodi che ha l'elemento select. Quindi non ci sarà una soluzione senza una funzione extra per verificare l'esistenza di un valore in un select.

una "soluzione" senza un ciclo potrebbe essere la seguente ...

function SelectHasValue(select, value) { 
    obj = document.getElementById(select); 

    if (obj !== null) { 
     return (obj.innerHTML.indexOf('value="' + value + '"') > -1); 
    } else { 
     return false; 
    } 
} 
+0

Sarà più efficiente dell'uso di un loop ???? –

+2

No, non lo farà. Date un'occhiata a http://jsbin.com/ewevu3 e provate voi stessi :) – Andreas

+0

oops .. quindi suppongo che il ciclo sia tutto ciò che è rimasto ... mal fatelo ... –

1

questo ha funzionato per me, quando i valori di caricamento delle pagine da parametri postali, quindi se il valore non è presente nel selezionare, avvisano l'utente ; altrimenti, andare avanti (o di allarme):

document.getElementById('your_select_id').value = target_value; 
if (document.getElementById('your_select_id').value !== target_value){ 
alert('This value is not in Select'); 
    return; 
} 
1

if(!$('#select-box').find("option:contains('" + thevalue + "')").length){ 
 
//do stuff 
 
}

+2

L'interrogante ha richiesto una soluzione JavaScript, sebbene jQuery sia una libreria JavaScript, sembra sicuro che stiano cercando una soluzione JS vanilla qui. –

0

con ecma6:

let option = document.getElementById('selbox').querySelector('[value="' + my_value + '"]'); 

questo troverà il primo elemento che contiene il valore di attributo = "my_value" .

PS: mi dispiace per il mio Spanglish :)

Problemi correlati