Obtén la API
La API te la entrega el eventoll-quiz-init como event.detail.llQuizApi. Guarda ese objeto y úsalo siempre que lo necesites.
Tu script puede ejecutarse antes o después de que se cargue el quiz. Si se registra tarde,
ll-quiz-init se le reenvía automáticamente, así que este patrón siempre funciona.llQuizApi, así que también puedes reaccionar a un paso o a una respuesta y actuar en ese mismo momento. Consulta Eventos del quiz.
Pasos y bloques por nombre
Todas las funciones que reciben un paso o un bloque aceptan su nombre o su ID. Los nombres son lo que escribiste en el editor, así que son lo que usarás normalmente. Los IDs se generan automáticamente y tienen este aspecto:block-3f9c….
Lee las respuestas
getAnswers() devuelve todas las respuestas dadas hasta el momento, una entrada por bloque. getAnswersSimple() devuelve las mismas respuestas como un objeto sencillo cuyas claves son las etiquetas. Los bloques ocultos y las respuestas vacías no se incluyen.
fields y fieldsSimple que incluyen los eventos, así que el código que gestiona uno gestiona los dos.
Sabe dónde está el visitante
index empieza en 0. isSubmitted pasa a true en cuanto esta visita envía el quiz.
Encuentra bloques
Las listas solo contienen bloques que guardan un valor. Los títulos, párrafos, imágenes y similares nunca aparecen. Además,
getBlock() encuentra botones (Continue, Previous, Submit, Button), así que puedes cambiar su texto o desactivarlos.
¿Qué bloques contienen un valor?
¿Qué bloques contienen un valor?
Campos de entrada (texto, email, teléfono, número, área de texto, fecha, fecha de nacimiento, código postal, dirección, OTP), opciones (opción múltiple, elección con imágenes, desplegable), casilla de verificación, control deslizante de rango, subida de archivos, firma y campos ocultos.Todo lo demás es visual o de navegación: título, párrafo, imagen, vídeo, separador, lista, loader, cuenta atrás, progreso, acordeón, enlaces, código personalizado, seguimiento y los botones. Llamar a
getValue(), setValue(), reset() o validate() sobre uno de ellos lanza un error. Los contenedores son transparentes: los bloques que contienen se listan como cualquier otro bloque.Lee y modifica un bloque
Todos los bloques que obtienes son el mismo tipo de objeto, así que los ejemplos siguientes funcionan en cualquier bloque que admita la llamada.Valor
ll-quiz-value-change con source: 'api', así que tus listeners pueden distinguirlo de cuando escribe el visitante.
Formatos de valor por bloque
Formatos de valor por bloque
- Casilla de verificación:
'checked'o'unchecked' - Opción múltiple, elección con imágenes, desplegable: el valor de la opción, por ejemplo
'pro' - Opción múltiple con varias selecciones: los valores unidos por el separador configurado en el bloque
- Todo lo demás: el texto que escribió el visitante
Etiqueta y placeholder
setLabel() y getLabel() lanzan un error en los bloques que no tienen etiqueta.
Opciones
Los bloques de opción múltiple, elección con imágenes y desplegable exponen sus opciones:getOptions() en cualquier otro bloque lanza un error.
Errores y foco
Botones
enable() y disable() funcionan en los bloques Continue, Submit y Button, y lanzan un error en cualquier otro.
Visibilidad
undefined significa que nunca lo has cambiado, así que el bloque sigue su propia configuración.
Valida
Cuando un paso falla, el quiz también dispara
ll-quiz-validation-error con cada bloque que falla y su mensaje, marcado con source: 'api'. Así, un solo listener puede gestionar tanto los intentos del visitante como los tuyos. Tienes los detalles en la página de eventos.Navega y envía
goNext(), goToStep() y submit() validan primero el paso que está en pantalla. Si no es válido, no avanzan, muestran un aviso en la consola y disparan ll-quiz-validation-error. goBack() nunca valida.
submit() hace exactamente lo mismo que el botón Submit del visitante: se guarda el lead, se dispara ll-quiz-submit con la respuesta del servidor, se aplica la protección de envío único y se ejecuta la acción posterior al envío del botón Submit. En un paso sin botón Submit, el quiz se envía y se queda donde está. La promesa devuelta se resuelve cuando todo eso ha terminado.
Recetas
Rellena campos desde la URL
Rellena campos desde la URL
Muestra un texto de progreso personalizado
Muestra un texto de progreso personalizado
Salta al primer campo con un error
Salta al primer campo con un error
Bloquea el botón Continue hasta que pase tu propia comprobación
Bloquea el botón Continue hasta que pase tu propia comprobación
Muestra un bloque solo para una respuesta concreta
Muestra un bloque solo para una respuesta concreta
Envía el quiz desde tu propio botón
Envía el quiz desde tu propio botón
Envía las respuestas a tu propio endpoint
Envía las respuestas a tu propio endpoint
Todas las funciones de un vistazo
Nombres de funciones antiguos (siguen siendo compatibles)
Nombres de funciones antiguos (siguen siendo compatibles)
Las versiones anteriores tenían una función por cada tipo de búsqueda. Siguen funcionando exactamente igual que antes, así que no necesitas cambiar nada de lo que ya hayas escrito. El código nuevo debería usar las funciones unificadas.