Pregunta

Tengo un conjunto de valores que están presentes en la carga de la página: por ejemplo, [1193,1184,2372].

Tengo un dropdownchecklist que puede tener un valor único como tal $ ( "Ddl.") Dropdownchecklist () Val (1193);..

Cuando la revinculación dropdownchecklist esto selecciona el valor correctamente. Sin embargo he intentado pasar mi matriz que contiene varios valores al método val () y que no selecciona los valores. Yo como que esperaba esto. No estoy seguro de cómo hacer mejor de preselección.

He intentado iteración a mi matriz para construir un atributo de filtro de aplicar como la siguiente: . $ ( "Ddl [valor de a * = '1184'] [valor de a * = '9067'] [valor de a * = '14841']") attr ( 'seleccionado', 'seleccionado');

pero esto no funciona. Yo no quiero tener que recorrer todas las opciones en el DDL y los puso a seleccionar si coinciden, ya que hay cientos de opciones y esto no será bueno se refiere a rendimiento, especialmente si sólo hay 2 opciones para ser preseleted.

¿Alguna idea?

¿Fue útil?

Solución

Crea una cadena de los seleccionados para crear la cadena de selector de jQuery y ponerlo en la .find () Función:

var str = '';
var arrLength = selectedArray.length;
$.each(selectedArray, function(i){
   str += 'option[value*='+selectedArray[i]+']';
   if((i+1) != arrLength){
     str += ', ';
   }
});

$('.ddl').find("option[value*='1184'], option[value*='9067'], option[value*='14841']")
     .attr('selected','selected'); 

También tenga en cuenta, al comparar un menú desplegable con un valor, que busca el elemento option en el, no el elemento de selección seleccione sí.

Otros consejos

Lo tengo trabajo con esto, pero la respuesta anterior se ve como una buena solución:

$.each(arr, function(i,s)
{
     $(ddl_id + ' [value*=\'' + s + '\']').attr('selected','selected');
});    

No está seguro de que es probable que sea más rápido, pero las minas un poco más limpio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top