Dinámica select2 no se desencadena el evento de cambio de

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 Kommentar

  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?

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea