Tengo un select div que estoy usando el elegido plugin de jquery a estilo y agregar características a (más notablemente, de búsqueda). El div se ve algo como esto,

 <select data-placeholder="add a foobar" id="foobar" style="width: 350px;">
 <option value=""></option>
 </select>

Y estoy usando el elegido plugin como este,

 $('#foobar').chosen();

Mientras que algunos de AJAX está cargando, me gustaría deshabilitar toda la <select> div. Tal vez con algo como esto,

 $('#foobar').disable()

o este

 $('#foobar').prop('disabled', true)

Creo que usted consigue la idea.

Ideas sobre cómo hacer esto? Yo he probado un número de cosas diferentes, como el uso de jquery modismos para la desactivación de las cosas, la desactivación de la <select> que solo desactiva el select subyacente, no el elegido cosas en la parte superior de la misma. Incluso he recurrido a la adición manual de otro div con un alto z-index a sólo gris de la caja, pero creo que esto es probable que sea feo y buggy.

Gracias por la ayuda!

InformationsquelleAutor gideonite | 2013-06-17

7 Comentarios

  1. 139

    Está deshabilitando sólo su select, pero elegido representa como la vid, y se extiende, etc. Así que después de la desactivación de su seleccione necesita para actualizar el plugin para hacer que el widget de selección de movilidad también. Usted puede tratar de esta manera:

    $('#foobar').prop('disabled', true).trigger("liszt:updated");
    
    //For non-older versions of chosen you would want to do:
    
    $('#foobar').prop('disabled', true).trigger("chosen:updated");

    He encontrado la información aquí

    El violín

    Una vez que se actualice el widget de todo lo que hace es que se suelta el clic o de otros eventos en el plugin y los cambios de su opacidad a 0.5. Como no existe un verdadero estado deshabilitado por un div.

    • Parece que hay un error tipográfico en liszt:updated, no debe ser `lista:actualiza?
    • liszt era correcto, pero ahora chosen:updated es la forma correcta de hacerlo de todos modos.
    • Sugerencia : puede Que necesite especificar la versión más reciente del código en la primera de ellas en su respuesta, ya que muchos de los usuarios que utilizarán la versión más reciente. He utilizado liszt:updated y no funciona ya que no funciona en las nuevas versiones.
    • no mayores que yo creo que significa más reciente?
  2. 46

    En la última versión de elegido, liszt:updated ya no funciona. Usted necesidad de utilizar chosen:updated:

    $(".chosen-select").attr('disabled', true).trigger("chosen:updated")

    Aquí un JSFiddle.

  3. 7

    PSL era correcto, pero el elegido ha sido actualizado desde entonces.

    Poner esto después de hacer la desactivación:

    $("#your-select").trigger("chosen:updated");
  4. 4
    $('#foobar').prop('disabled', true).trigger("chosen:updated");

    Esto funciona Perfecto!!!!
    @elegido v1.3.0

  5. 0
    $(document).ready(function () {
        $("#foobar").chosen().on('chosen:showing_dropdown',function() {
                $('.chosen-select').attr('disabled', true).trigger('chosen:updated');
                $('.chosen-select').attr('disabled', false).trigger('chosen:updated');
                $('.search-choice-close').hide();
        });
        $('.search-choice-close').hide();
    });
  6. 0

    Que usted puede probar esto:

    $("#foobar").prop('disabled',true).trigger("chosen:updated").chosen('destroy').chosen()

Dejar respuesta

Please enter your comment!
Please enter your name here