Tengo un problema con jQuery.selectmenu
cuando hago clic en el botón de reset a mi me gustaría para restablecer como todos los otros campos.
cualquier entrada se actualiza ahora, pero con este plugin no es refrescante.
qué hacer ?

un poco más de detalles:

<form action="#" name="editform">
    <fieldset>
        <select name="speed" id="speed">
            <option value="Slower">Slower</option>
            <option value="Slow">Slowwwwwwwwww</option>
            <option value="Medium" selected="selected">Medium</option>
            <option value="Fast">Fast</option>
            <option value="Faster">Fasterrrrrrrrrrrrrrrr</option>
        </select>
    </fieldset>
<a class="refForm" href="javascript:document.editform.reset()">Reset</a>
</form>

ahora cuando hago clic en el botón de reset no restablecer el (seleccione) desplegable
Quiero seleccione todos los campos de volver a predeterminado haga clic con el botón reset.

por cierto.: Este es el plugin:
Wiki jQuery-ui-selectmenu

Saludos !
Lucas

InformationsquelleAutor beltrone | 2011-06-10

7 Comentarios

  1. 4

    Restablecer todos los combobox de la forma

    $("form .select").selectmenu("index", 0);
    • ¿de dónde selectmenu() viene??? es allí cualquier jquery que se requiere para que??
    • Me temo que no existe tal argumento como «índice» aceptada por la selectmenu método. Ver mi respuesta en stackoverflow.com/a/39591945/1705383
  2. 2

    la única solución de trabajo para mí:

    $('#resetButton').click(function() {
      $("#Service").selectmenu('destroy');
      $("#Service").prop('selectedIndex',0);
      $("#Service").selectmenu();
    })';
    • No es la mejor solución, pero mi única solución viable. Thx
  3. 1

    He encontrado que es tan sencillo como: (sustituir #mymenu con su selector)

    $(«#mymenu»)[0].selectedIndex = 0;

    $(«mi menú»).selectmenu(«actualizar»);

    • Esto funciona excelente con jQuery UI versión 1.11.4
  4. 0

    Mirando la página de demostración:

    http://jquery-ui.googlecode.com/svn/branches/labs/selectmenu/index.html

    No veo ninguna evidencia de que se tiene un método reset. Pero si lo hiciera, me gustaría esperar a ser llamado de esta manera:

    $('select#speed').reset();

    Tenga en cuenta que con el plugin tienes que llamar a métodos en el jQuery-envuelto seleccionar objeto, no en todo el formulario.

    El .reset() que su JS de llamadas es un construido en el método DOM. Usted puede utilizar métodos de DOM para restablecer la seleccione como este:

    getElementById("speed").selectedIndex = 0;
    • Hey, Así es como funciona: si restablece índice se pone a por defecto, pero el jQuery.selectmenu no se actualiza. Si se obtiene el índice seleccionado – está cambiando, pero desplegable permanece en la posición en la que fue la última elegido Lamentablemente no hay .reset() para esto 😉
    • Funciona incluso con una entrada estándar botón de reset, pero no actualiza la vista, así que tengo que actualizar o reconstruir el jQuery.selectmenu o algo. PERO ! – gracioso – si usted haga clic en 2 tiempos es el cambio de ><
    • ALGUNA IDEA ? Cómo recargar toda la selectmenu en forma reset ?
    • Bueno, supongo que se podría escuchar el formulario restablecer evento y disponer de un controlador de reconstruir la selectmenu.
  5. 0

    Puede enlazar una función en el evento click de tu botón de reinicio\gatillo lugar de unión de controlador en el evento de restablecimiento de un formulario. El truco es que cuando se restablece el formulario original, seleccione en se restablece a su valor inicial, por lo que, después de que el formulario fue resetted, usted puede obtener el valor de la selección y actualización de su personalizados selectmenu con ese valor. Haciendo que permite restablecer personalizado selectmenu. Aquí está el código:

    $('.refForm').click(function(){
        var $that = $(this),
            select;
        setTimeout(function(){
            $that.closest('form').find('.ui-selectmenu').each(function(){
                select = $(this).prev();
                select.selectmenu("value", select.val());
            })
        }, 0)
    })

    Función de que obtener el valor de la original resetted seleccione se coloca en el interior de la setTimeout con cero retraso – para asegurarse de que la original, seleccione será resetted antes de la función se va a acceder a ella de valor.

    También tenga en cuenta que si las etiquetas de opción no tiene valor de los atributos especificados en el código anterior no funciona en IE (7-9 medida de lo que he probado). Por lo que necesita para especificar el valor para todas las opciones.

  6. 0

    jQuery UI del selectmenu tiene una actualización de la propiedad. Usted debe llamar a que:

    $('select').selectmenu('refresh');

    Por supuesto, usted quiere llamar a eso después de que el evento de restablecimiento se ha disparado en el formulario, cuando el original <select> se ha restablecido. No es «adecuado» a su manera de hacerlo (por ejemplo, no hay afterreset evento). Por supuesto, usted puede establecer un tiempo de espera (como se mencionó antes), pero que se siente hackish. La mejor/más forma que he encontrado para hacer esto es escribir su propio ‘reset’ de la función y de la llamada forma.reset() antes de llamar a la actualización como se muestra arriba. Usted podría, por ejemplo, escuchar un clic en el botón restablecer(s):

    //Modify selectors to fit your needs.
    $('.resetButton').click(function()
    {
        $('#searchForm')[0].reset();
        $('select').selectmenu('refresh');
        return false;
    });

    Estoy devolviendo false para evitar que el reset() sea llamado dos veces.

  7. 0

    Un poco tarde a la fiesta, sin embargo, considerando que todas las otras respuestas son incorrectas o incompletas, voy a tirar en mis 2 centavos de dólar!

    Todo lo que necesitas hacer es

    $('#speed').val("Slower"); //your default option's value
    $('#speed').selectmenu("refresh");

Dejar respuesta

Please enter your comment!
Please enter your name here