Tengo un formulario con un par de selecciona en el interior.
Estoy aplicando el select2 plugin de jquery sobre los selecciona como este:

$("select.company_select, select.positions_select").select2();

El select funciona bien, pero tengo este código para autosubmit mi formulario (tengo el autosubmit clase en la etiqueta del formulario).

var currentData;
    $('.autosubmit input, .autosubmit select, .autosubmit textarea').live('focus', function () {
        currentData = $(this).val();
    });

    $('.autosubmit input, .autosubmit select, .autosubmit textarea').live('change', function () {
        console.log('autosubmiting...');
        var $this = $(this);
        if (!currentData || currentData != $this.val()) {
            $($this.get(0).form).ajaxSubmit(function (response, status, xhr, $form) {
                currentData = "";
            });
        }
    });

La cosa es que con el select2, el cambio o el enfoque evento no fuego. Si puedo quitar el select2, a continuación, los eventos que despidan a la perfección.

¿Qué estoy haciendo mal?

InformationsquelleAutor Phoenix_uy | 2013-04-17

1 Comentario

  1. 31

    Select2 sólo tiene 2 eventos, open y change (http://select2.github.io/select2/#events), son capaces de agregar los oyentes sólo a ellos.
    Usted puede utilizar open evento en lugar de focus para <select> elemento.
    Y por favor, no use live() método, ya que está obsoleto. Uso on() lugar.

    var currentData;
    $(".autosubmit select").on("open", function() {
        currentData = $(this).val();
    });
    $(".autosubmit input").on("focus", function() {
        currentData = $(this).val();
    });
    $(".autosubmit input, .autosubmit select").on("change", function() {
        var $this = $(this);
        console.log('autosubmitting');
        if (!currentData || currentData != $this.val()) {
            $($this.get(0).form).ajaxSubmit(function (response, status, xhr, $form) {
                currentData = "";
            });
        }
    });

    Aquí es el El violín

    • tuve el mismo problema esta noche. esta casi trabajó para mí. usando jQuery 1.11.1 y un cuadro de texto de la versión de select2 he tenido que utilizar la forma más de $(‘.contenedor’).en(‘change’, ‘#myselect2’, function() { …
    • Docs http://select2.github.io/select2/
    • Este violín ya no parece funcionar. Estoy viendo «Uncaught TypeError: $(…).select2 no es una función» en la consola, a pesar de select2.js ser incluidos en los recursos externos. Posiblemente sea un problema con jsfiddle?

Dejar respuesta

Please enter your comment!
Please enter your name here