Chosen: .trigger ("elegido: actualizado") no tiene derecho a seleccionar la opción que le doy

Creado en 18 oct. 2016  ·  7Comentarios  ·  Fuente: harvesthq/chosen

cuando intento volver a seleccionar el valor de dirrert a través de ajax
la primera vez que la función hace lo correcto
después de dos o más veces cuando cambié la opción de selección num1
la otra selección num2 debe actualizarse seleccionando otra opción val
pero no múltiples todas las opciones que necesito seleccionar o nadie seleccionado en absoluto

Comportamiento esperado

Cuéntanos qué debería pasar.
cuando cambio el único elemento seleccionado
la selección 2 necesita al seleccionar otra opción básica la opción que obtengo a través de ajax

Comportamiento real

Cuéntanos qué sucede en su lugar.

Ambiente

  • Versión elegida : 1.6.2
  • jQuery o versión de prototipo :
  • Navegador y versión : chrome 54.0.2840.59 m (64 bits)
  • SO y versión : WIN7 SP1 64BIT






haciendo algo por diversión {
$ ("# una opción [valor = 1] '). attr (' seleccionado ', verdadero);
$ ("# una opción [valor = 3] '). attr (' seleccionado ', verdadero);
}
$ ("# uno"). val (1) .trigger ("elegido: actualizado");

entonces tal vez no obtengo nada para seleccionar después a veces más tarde ???
No sé que debo hacerlo, ¿así que puedo seleccionar la opción correcta que necesitaba después?

Awaiting Reply

Comentario más útil

Hola Blankhang,
su problema puede resolverse con esto.
qué estás haciendo:
$ ("# una opción [valor = 1] '). attr (' seleccionado ', verdadero);
$ ("# una opción [valor = 3] '). attr (' seleccionado ', verdadero);
$ ("# uno"). val (1) .trigger ("elegido: actualizado");

que hay que hacer

$ ("# una opción [valor = 1] '). attr (' seleccionado ', verdadero);
$ ("# una opción [valor = 3] '). attr (' seleccionado ', verdadero);
$ ("# uno"). trigger ("elegido: actualizado");

no dé ningún valor mientras activa la actualización;

Todos 7 comentarios

perdón por el inglés de mi pobre: ​​sollozo:

Si lo entiendo correctamente, agrega nuevas opciones a la selección usando una solicitud ajax, y luego activa chosen:updated para que Chosen refleje los cambios.

Configure un violín para demostrar el problema y luego podremos decidir si es un error o simplemente un problema con su implementación.

GRACIAS POR REP este

NO ES ESO ... no actualizar la lista de opciones
la lista de opciones es la misma
pero el valor no es tan
cada vez que quiero cambiar el valor que activé elegido: actualizado a través de jQuery
cuando la primera vez que el valor de los elementos seleccionados era correcto
pero saldrá mal cuando se publique más tarde
No puedo obtener el valor correcto del elemento seleccionado ...
image
image
cuando se carga por primera vez, la función es correcta, solo se debe seleccionar una opción
image
image

luego una vez más
image

debería ser así
Uploading image.png…

https://jsfiddle.net/4jtsdnt7/ someof

Hola Blankhang,
su problema puede resolverse con esto.
qué estás haciendo:
$ ("# una opción [valor = 1] '). attr (' seleccionado ', verdadero);
$ ("# una opción [valor = 3] '). attr (' seleccionado ', verdadero);
$ ("# uno"). val (1) .trigger ("elegido: actualizado");

que hay que hacer

$ ("# una opción [valor = 1] '). attr (' seleccionado ', verdadero);
$ ("# una opción [valor = 3] '). attr (' seleccionado ', verdadero);
$ ("# uno"). trigger ("elegido: actualizado");

no dé ningún valor mientras activa la actualización;

Experimenté el mismo problema después de actualizar el estado de selección de las opciones de una selección múltiple por JS, luego intenté actualizar Chosen para mostrar la selección. Hice un violín que demuestra este comportamiento:

https://jsfiddle.net/5wbzxg27/

Hay 3 botones:

  • seleccionar todas las opciones,
  • seleccione algunas de las opciones,
  • seleccione las opciones restantes.

Cada opción aparece solo una vez en el cuadro Elegido, incluso si presiona el mismo botón (y lo actualiza) varias veces . El script se ejecuta bien, el estado seleccionado de las opciones de selección originales cambia bien, pero el Elegido muestra las opciones solo la primera vez.

Espero que esto ayude.

@cinemazealot prueba el siguiente código:

$("#mySelect").chosen({
       placeholder_text_multiple: 'Something',
});
$('button#all').on('click', function() {
  $('#mySelect option').attr('selected', false);   // selects all
  var options = [];
  for (var i=0; i < $('#mySelect option').length; i++){
    options.push($('#mySelect option')[i].value);
  };
  $('#mySelect').val(options);
  $("#mySelect").trigger("chosen:updated");       // updates chosen
  return false;                                   // returns false not to post the surrounding form
});
$('button#first').on('click', function() {
  $('#mySelect option').attr('selected', false);  // clears all
  var options = [];
  for (var i=0; i < $('#mySelect optgroup[label="first"] option').length; i++){
    options.push($('#mySelect optgroup[label="first"] option')[i].value);
  };
  $('#mySelect').val(options);
  $("#mySelect").trigger("chosen:updated");       // updates chosen
  return false;                                   // returns false not to post the surrounding form
});
$('button#second').on('click', function() {
  $('#mySelect option').attr('selected', false);  // clears all
    var options = [];
  for (var i=0; i < $('#mySelect optgroup[label="second"] option').length; i++){
    options.push($('#mySelect optgroup[label="second"] option')[i].value);
  };
  $('#mySelect').val(options);
  $("#mySelect").trigger("chosen:updated");       // updates chosen
  return false;                                   // returns false not to post the surrounding form
});

Puede parecer grande y torpe, pero parece funcionar

@pashaUSA eres el mejor! :) Perdón por la reacción tardía, tenía otros proyectos en ejecución. Pero su solución simplemente hace lo que se supone que debe hacer. ¡Muchas gracias! :)

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

chenglou picture chenglou  ·  25Comentarios

dmifedorenko picture dmifedorenko  ·  17Comentarios

greg0ire picture greg0ire  ·  38Comentarios

mrpohoda picture mrpohoda  ·  25Comentarios

elneilios picture elneilios  ·  24Comentarios