Estás diseñando un formulario PDF para la admisión de clientes. Si el cliente selecciona "Individual" como tipo de cuenta, el formulario debe mostrar campos para su nombre y número de Seguro Social. Si seleccionan "Negocios", En su lugar, el formulario debe mostrar campos para el nombre de la empresa y el número de identificación del empleador. En un formulario en papel, imprimiría ambas secciones y escribiría "Si corresponde" al lado de cada uno. En un PDF digital, la lógica condicional puede ocultar por completo la sección irrelevante, mostrando al usuario sólo los campos que realmente necesita completar.
La lógica condicional en los formularios PDF es real y funcional, pero conlleva importantes salvedades. A diferencia de los formularios web, donde JavaScript y CSS brindan un control flexible sobre la visibilidad y el diseño, la lógica condicional de PDF está limitada por la implementación limitada de JavaScript del formato PDF y la forma inconsistente en que los diferentes visores de PDF ejecutan scripts. Comprender qué es posible y qué no le impide diseñar un formulario que funcione en su entorno de prueba pero que no funcione para la mitad de sus destinatarios.

Qué puede hacer realmente la lógica condicional en un formulario PDF
La lógica condicional de PDF se ejecuta en Acrobat JavaScript, una versión simplificada de JavaScript que ha sido parte de la especificación de PDF desde principios de la década de 2000. Puede mostrar u ocultar campos de formulario según la entrada del usuario. Puede habilitar o deshabilitar campos, cambiar su color o borde, marcarlos como obligatorios u opcionales y completar sus valores a partir de tablas de búsqueda. Puede validar la entrada a medida que el usuario escribe, mostrar mensajes de advertencia y activar cálculos cuando se cumplen ciertas condiciones.
Lo que no puede hacer es reestructurar el diseño de la página. Ocultar un campo lo elimina de la vista, pero el espacio que ocupaba permanece. Los campos siguientes no se deslizan hacia arriba para llenar el vacío. La página no vuelve a fluir. Esta es la mayor diferencia entre un PDF Forms y un formulario web, y es la fuente de la mayor decepción cuando alguien intenta replicar una experiencia de formulario web dentro de un PDF. Si su lógica condicional necesita cambiar drásticamente el diseño de la página, un PDF es la herramienta equivocada. Si necesita mostrar u ocultar algunos campos dentro de un diseño fijo, la lógica condicional de PDF lo maneja bien.
Intente editar PDF
No se necesita instalación. Funciona directamente en su navegador.
Cómo configurar una regla Mostrar-Ocultar basada en una selección de menú desplegable o casilla de verificación
El patrón condicional más común es un menú desplegable o un conjunto de botones de opción que controlan qué campos posteriores son visibles. En el editor de formularios de WukongPDF, comience creando el campo de control, el menú desplegable o el grupo de botones de opción cuyo valor determina lo que sucede a continuación. Asígnele un nombre claro como "tipo de cuenta". Luego cree todos los campos que podrían mostrarse u ocultarse. Todos los campos posibles deben existir en el formulario desde el principio. La lógica condicional solo controla la visibilidad. No crea ni destruye campos.
Con los campos creados, abra las propiedades del campo de control y ubique la pestaña del evento Validar o En Desenfoque. Aquí es donde se escribe el JavaScript que responde a la selección del usuario. Un script simple para mostrar y ocultar se ve así: var Choice = event.target.value; this.getField("ssnField").display = (elección === "Individual")? mostrar.visible: mostrar.oculto; this.getField("einField").display = (choice === "Negocio")? mostrar.visible: mostrar.oculto; Cuando el usuario cambia el menú desplegable, el script se ejecuta, verifica el valor seleccionado y establece la propiedad de visualización de cada campo como visible u oculto.
Un detalle importante: establezca el estado inicial de todos los campos condicionales para que coincida con el valor predeterminado del campo de control. Si el menú desplegable tiene como valor predeterminado "Individual" el campo SSN debe comenzar visible y el campo EIN debe comenzar oculto. Si los campos comienzan en un estado incorrecto, el usuario ve ambos o ninguno hasta que interactúa con el menú desplegable por primera vez, que parece roto. El estado inicial y la lógica del script deben coincidir.
Reglas de validación que verifican la entrada antes de que el usuario continúe
La lógica condicional se extiende más allá de la visibilidad hasta la validación de entradas. Un campo de fecha puede verificar que la fecha ingresada esté dentro de un rango aceptable. Un campo de correo electrónico puede verificar que la entrada contiene un signo @ y un dominio. Un campo de número de teléfono puede requerir exactamente diez dígitos. Los scripts de validación se ejecutan en el evento Validar del campo, que se activa cuando el usuario intenta abandonar el campo. Si el script llama a event.rc = false, el foco permanece en el campo y el usuario no puede continuar hasta que se corrija la entrada.
Una validación de teléfono práctica se ve así: var phone = event.value.replace(/\s|-|\(|\)/g, ''); if (phone !== "" && !/^\d{10}$/.test(phone)) { app.alert("Ingrese un número de teléfono de 10 dígitos."); evento.rc = falso; } Este script elimina espacios, guiones y paréntesis y luego comprueba si los caracteres restantes son exactamente diez dígitos. Si el campo está vacío, se pasa la validación, porque no todos los campos del teléfono son obligatorios. Si el campo tiene contenido pero no tiene diez dígitos, el script muestra un mensaje de alerta y bloquea al usuario para que no pueda salir del campo.
Las reglas de validación deben usarse con moderación y con mensajes de error claros. Un formulario que bloquea al usuario en todos los campos con alertas crípticas genera frustración. Un formulario que valida sólo los campos donde una entrada incorrecta causaría problemas reales y explica lo que el usuario necesita solucionar genera confianza. El texto de alerta debe indicar exactamente qué está mal y cómo solucionarlo. "Entrada no válida" es inútil. "El número de teléfono debe tener 10 dígitos sin espacios ni guiones" le dice al usuario qué hacer.
El problema de compatibilidad del espectador y cómo solucionarlo
PDF JavaScript es compatible con Adobe Acrobat Reader, Acrobat Pro y la mayoría de las aplicaciones PDF de escritorio. No es compatible con la mayoría de los visores de PDF basados en navegadores, incluido el visor integrado de Chrome, PDF.js de Firefox y la vista previa de Safari. Es parcialmente compatible con algunas aplicaciones de PDF móviles y completamente ausente en otras. Si su formulario se basa en lógica condicional y secuencias de comandos de validación, y su destinatario lo abre en un visor que no ejecuta JavaScript, verá todos los campos, incluidos los que deben estar ocultos, y no se activará ninguna de las reglas de validación.
No existe una solución técnica perfecta para esto. El mejor enfoque es una combinación de un etiquetado claro y una instrucción destacada en la parte superior del formulario. Etiquete las secciones condicionales con su condición de activación: "Si seleccionó Negocios arriba, complete esta sección". De esta manera, incluso si la secuencia de comandos falla, el usuario puede seguir el formulario manualmente. La experiencia Interactive PDF se degrada elegantemente a una forma estática utilizable en lugar de volverse incomprensible.
Prueba de formularios condicionales en varios espectadores
Antes de distribuir un formulario PDF condicional, pruébelo en al menos cuatro entornos: Adobe Acrobat Reader en el escritorio, el visor de PDF integrado en Chrome, el visor de PDF Safari o Preview en Mac y un visor de PDF móvil en iPhone y Android. En cada entorno, trabaje sistemáticamente en el formulario. Cambie las selecciones desplegables y verifique que los campos correctos aparezcan y desaparezcan. Ingrese datos no válidos y confirme que aparezcan mensajes de validación e impida el envío. Guarde el formulario y vuelva a abrirlo para comprobar que el estado guardado sea coherente.
Para los formularios dirigidos a una audiencia conocida, como formularios internos de la empresa o formularios enviados a través de un portal específico, pruebe solo los espectadores que su audiencia realmente utiliza. Si todos los miembros de su organización utilizan Adobe Acrobat, la compatibilidad del navegador es irrelevante. Si su formulario se publicará en un sitio web público y cualquier persona con cualquier dispositivo lo abrirá, suponga que un porcentaje significativo de usuarios verá el formulario sin JavaScript. Diseñe el formulario para que funcione aceptablemente en ese estado degradado, con todos los campos visibles y todas las instrucciones claras, y deje que la lógica condicional sea una mejora en lugar de un requisito.
Cuando la lógica condicional pertenece a un formulario web
Si su formulario necesita asistentes de varios pasos, creación dinámica de campos, validación del servidor en tiempo real o redistribución de la página cuando los campos aparecen y desaparecen, un formulario web es la herramienta adecuada, no un PDF. Los formularios PDF son documentos estáticos con mejoras interactivas. Los formularios web son aplicaciones interactivas con un resultado similar a un documento. La distinción es importante porque crear un formulario condicional complejo en PDF, sólo para descubrir que la mitad de su audiencia no puede usarlo según lo previsto, es un error frustrante y que requiere mucho tiempo.
Un enfoque híbrido práctico es utilizar un formulario web para la recopilación de datos y la lógica condicional, y generar un PDF a partir de los datos enviados para firmarlos, archivarlos y compartirlos. El PDF Editor de WukongPDF funciona bien en este flujo de trabajo: recopila los datos a través de un formulario web, completa una plantilla PDF con las respuestas y entrega el PDF pulido al usuario para sus registros. El formulario web maneja la lógica. El PDF se encarga de la presentación. Cada herramienta hace lo que mejor sabe hacer.
Intente editar PDF
No se necesita instalación. Funciona directamente en su navegador.
