Tengo un modal de bootstrap de confirmación donde quiero mostrar el valor seleccionado actualmente de un html, seleccione de la lista así como un valor por el que pasa una variable.

Pregunté esto ASÍ, pregunta y recibió una buena respuesta aquí acerca de la visualización de dos valores de la misma html de la lista de selección de una confirmación de JavaScript popup. Sin embargo, ahora necesito reemplazar la confirmación de JavaScript con un modal de bootstrap.

Aquí está el código html seleccione de la lista:

<select name="language_code" id="id_language_code">
    <option value="ar">Arabic - العربية</option>
    <option value="bg">Bulgarian - Български</option>
    <option value="zh-CN">Chinese (Simplified) - 中文 (简体)‎</option>
    <option value="en" selected="selected">English (US)</option>
    <option value="fr-CA">French (Canada) - français (Canada)‎</option>
</select>

Me puede mostrar dos valores de idioma en el proceso de arranque modal, utilizando el código siguiente:

$( "#submit_buttonA" ).attr('update-confirm', 'Are you sure you want to change the language of the website from ' + $('#id_language_code option[value=' + '{{ user.get_profile.language_preference }}' +  ']').text() + ' to ' + $('#id_language_code option:selected').text() + '?');

El código de arriba de la línea de siempre devuelve el 2º idioma valor $(‘#id_language_code option:selected’).texto() (que está seleccionada=»seleccionado») como , inglés (estados unidos) en el proceso de arranque modal, incluso si el usuario ha seleccionado búlgaro – Български.

He leído en este y creo que esto va a requerir un JavaScript función de devolución de llamada porque el modal de bootstrap es asincrónica, mientras que el JavaScript confirmar() no es asincrónica.

Es esto correcto? He tratado de escribir una función de devolución de llamada para devolver el valor de html de la lista de selección que el usuario ha seleccionado, pero no funciona. No estoy seguro de si este es el enfoque correcto o que mi código habilidades no son lo suficientemente buenas.

Alguien puede mostrarme cómo escribir esta función de devolución de llamada y explicar cómo funciona, porque estoy realmente confundido sobre cómo conseguir que esto funcione?

InformationsquelleAutor user1261774 | 2014-07-23

1 Comentario

  1. 7

    Bootstrap del modales de la clase que ya tienen debajo de eventos para enganchar en funcionalidad modal.

    1. mostrar – Este evento se desencadena inmediatamente cuando el show método de instancia es llamado.
    2. muestra – Este evento es disparado cuando el valor modal se ha hecho visible para el usuario (se espera para las transiciones de la css para completar).
    3. ocultar – Este evento es disparado inmediatamente cuando el ocultar método de instancia ha sido llamado.
    4. oculto – Este evento es disparado cuando el valor modal ha terminado de ser oculto para el usuario (se espera para las transiciones de la css para completar).

    Puede utilizar los eventos anteriores como

     $('#myModal').on('shown', function () {
        //your code to display the message
     })

    La esperanza de que esto va a resolver su problema !!

    EDIT 1 :

    El problema real es con selector de jquery $('#id_language_code option:selected').text();
    Uso
    var selectedValue = $('#id_language_code').val(): que le dará el valor seleccionado actualmente en el interior de la caja de selección. y usted puede utilizar $('#id_language_code option[value=' + selectedValue + ']').text(); para obtener el texto de la opción seleccionada por el usuario.

    Usted no necesita ir a la función de devolución de Llamada para su problema.

    Buen Día

    • Usted ha entendido mal la pregunta. Quiero mostrar un valor en un modal de bootstrap. La pantalla de la moda, no es un problema.
    • Pero usted necesita para sincronizar los valores seleccionados en el texto de la moda, cada vez que (re)mostrar el modal. «cada vez que (re)mostrar el modal» = show/shown evento
    • quiero mostrar un valor en un modal de bootstrap» ¿cuál es la parte confusa en la pantalla?? ¿puedes explicar un poco más ?. Estoy deseando encontrar una solución para su problema
    • Navas Basheer, Si el usuario selecciona búlgaro – Български de html de la lista de selección & a continuación, hace clic en el botón de enviar formulario, el muestra valor de la lista de selección se debe mostrar (no el selecciona valor) en el mensaje modal. En la actualidad, el valor incorrecto marcado como «seleccionado» se muestra siempre, que es el inglés (US) como se muestra anteriormente en el ejemplo de la lista de selección. Quiero mostrar búlgaro – Български. ¿Esto tiene sentido? Esto me tiene muy confundido en cuanto a por qué no puedo conseguir el «búlgaro – Български» el valor para el mensaje modal.
    • ahora tengo lo que tu pregunta es !!!! el problema es con selector de jquery $('#id_language_code option:selected').text() uso var selectedValue = $('#id_language_code').val() que le dará el valor seleccionado actualmente en el interior de la caja de selección. y usted puede utilizar $('#id_language_code option[value=' + selectedValue + ']').text(); para obtener el texto de la opción seleccionada por el usuario. Déjeme saber su resultado después de intentar esto 🙂
    • Navas Basheer, por desgracia yo ya había probado este enfoque. El «selectedValue» te recomendamos devuelve el valor seleccionado de en (porque inglés (US) está seleccionada) a pesar de la selección de búlgaro – Български de html de la lista de selección.
    • No. Espera! Esto hace el trabajo!! Estúpido de mí!! Tocando y retocando el código solucionado el problema con la sugerencia de Navas Basheer. GRACIAS NAVAS BASHEER. edita tu respuesta y me lo marca como correcta.
    • Que genial !!!
    • Por favor, tenga en cuenta que en la actual versión de bootstrap modal, el onShown evento en obras como esta: en(«se muestra.bs.modal»,…

Dejar respuesta

Please enter your comment!
Please enter your name here