2010-10-07 5 views

Respuesta

2

lo puede hacer con jQuery

Uso del Attribute Equals Selector

ver en

Check if value is in select list with JQuery

en javascript que puede correr como

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

No creo que el PO está buscando una solución jQuery ... – chigley

+0

Yo tampoco estaba jugando con algún tipo de unirse y Option.prototype. Se topó con más problemas de los que esperaba :) – mplungjan

+0

Acabo de volver a leer la pregunta, y si bien es posible con JavaScript puro, definitivamente utilizaría un enfoque jQuery ya que de lo contrario se volvería complicado. – chigley

7

No puede ampliar los métodos que tiene el select -elemento. Por lo tanto, no habrá una solución sin una función adicional para verificar la existencia de un valor en select.

Una "solución" sin un bucle podría ser el siguiente ...

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

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

¿Será esto más eficiente que usar un ciclo ???? –

+2

No, no lo hará. Eche un vistazo a http://jsbin.com/ewevu3 y pruébelo usted mismo :) – Andreas

+0

oops ... así que supongo que el bucle es todo lo que queda ... iré con él ... –

1

esto funcionó para mí cuando los valores de carga de la página de parámetros de correos, por lo que si el valor no está presente en la selección, alertan al usuario ; otra cosa, ir a (o alerta):

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

El interlocutor ha solicitado una solución de JavaScript, aunque jQuery es una biblioteca de JavaScript, parece seguro suponer que está buscando una solución vanisa de JS aquí. –

0

con ecma6:

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

este se encuentra el primer elemento que contiene el valor del atributo = "my_value" .

PS: Lo siento por mi spanglish :)

Cuestiones relacionadas