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
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
Cuéntanos qué sucede en su lugar.
haciendo algo por diversión {
$ ("# una opción [valor = 1] '). attr (' seleccionado ', verdadero);
}
$ ("# uno"). val (1) .trigger ("elegido: actualizado");
uno val 1
entonces
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?
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 ...
cuando se carga por primera vez, la función es correcta, solo se debe seleccionar una opción
luego una vez más
debería ser así
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:
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! :)
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;