Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Oldwest en 17 de Septiembre 2019, 13:13

Título: Validacion campos obligatorios formulario Acrobat setFocus print JavaScript
Publicado por: Oldwest en 17 de Septiembre 2019, 13:13
La cuestion es que tengo un formulario creado en Acrobat y unos campos activados como obligatorios de rellenar y un boton de imprimir formulario.

Me gustaria que me pusiera un aviso y no se pueda imprimir, si algun campo obligatorio no esta relleno, o bien, que al pasar de un campo a otro sino esta relleno el obligatorio, que me ponga el aviso.

Soy muy novel en programación, de ahi que use Acrobat.

Muchas gracias de antemano
Título: Re:Validacion campos obligatorios en un formulario en Acrobat
Publicado por: javi in the sky en 17 de Septiembre 2019, 19:05
Hola. Supongo que depende de la herramienta que uses para montar el formulario ya que hay varias y quizás hay alguna herramienta que lo haga más sencillo. Si usas Adobe Acrobat Professional / Live Cycle puedes probar lo siguiente: abre el formulario pdf. Haz click con el botón derecho en el campo del formulario que quieres establecer como obligatorio y elige Properties (Propiedades), pestaña "General". Elije "Required" (requerido). Pulsa en Actions (acciones) y en Under Select Trigger (evento selección), seleccionar on Blur (al perder el foco), y elegir Ejecutar script JavaScript (Run a JavaScript) como acción seleccionada (select action). Ahí tendrías que escribir un código como este:

Código: [Seleccionar]
f = getField(event.target.name)
if (f.value.length == 0)
    {
    f.setFocus()
    //Si quieres mostrar un mensaje puedes hacerlo incluyendo la siguiente línea, si no quieres borrarlo
    app.alert("Este campo es obligatorio. Por favor introduzca un valor.")
    }

Tras esto aceptar y cerrar.

El problema puede estar en la herramienta que estés usando para montar el formulario, no todas las herramientas permiten opciones avanzadas.
Título: Re:Validacion campos obligatorios en un formulario en Acrobat
Publicado por: Oldwest en 17 de Septiembre 2019, 21:34
Mil gracias por tu pronta respuesta y a la vez efectiva. Pero tengo un problemilla, uso Adobe Acrobat Pro DC y en Propiedadades en capo de texto en acciones solo me sale:
Seleccionar desencadenador:
RATON PULSADO, SOLTADO, DENTRO, FUERA Y CAMPO ACTIVADO Y DESACTIVADO, por lo que esta pitando constantemente.

Que opcion tengo que coger?

Gracias de nuevo javi in the sky(http://)

Título: Re:Validacion campos obligatorios en un formulario en Acrobat
Publicado por: javi in the sky en 17 de Septiembre 2019, 22:02
Hola yo creo que la pérdida de foco debe corresponder con "CAMPO DESACTIVADO" ó quizás con "FUERA" aunque no tengo claro si fuera se refiere a que una vez adquirido el foco lo pierde, o a que el ratón pasa por encima del campo y sale.
Título: Re:Validacion campos obligatorios en un formulario en Acrobat
Publicado por: Oldwest en 17 de Septiembre 2019, 22:10
No hay manera, no me permite escribir, me sale el mensaje constantemente, activando la opcion que sea. :-[

Gracias de nuevo y buenas noches
Título: Re:Validacion campos obligatorios en un formulario en Acrobat
Publicado por: Oldwest en 17 de Septiembre 2019, 22:27
Seria mucho pedir que me dijeras el script para poner en acciones en el boton de impresion.

Por ejemplo, que si en los campos de texto llamados 1, 2 y 3 no hay nada escrito o en alguno de ellos que apareciera la alerta y no me dejara imprimir.

Muchas gracias
Título: Re:Validacion campos obligatorios en un formulario en Acrobat
Publicado por: javi in the sky en 19 de Septiembre 2019, 18:32
No lo sé, lo que se me ocurre es que si puedes conocer el nombre de los campos que tienes obligatorios, en el botón imprimir añadas el código usando el nombre de estos campos, por ejemplo si los campos se llaman telefono y email

Código: [Seleccionar]
f = getField("telefono")
if (f.value.length == 0)
    {
    f.setFocus()
    //Si quieres mostrar un mensaje puedes hacerlo incluyendo la siguiente línea, si no quieres borrarlo
    app.alert("Este campo es obligatorio. Por favor introduzca un valor.")
    }

f = getField("email")
if (f.value.length == 0)
    {
    f.setFocus()
    //Si quieres mostrar un mensaje puedes hacerlo incluyendo la siguiente línea, si no quieres borrarlo
    app.alert("Este campo es obligatorio. Por favor introduzca un valor.")
    }
Título: Re:Validacion campos obligatorios en un formulario en Acrobat
Publicado por: Oldwest en 19 de Septiembre 2019, 19:46
Muchas gracias funciona perfectamente, lo unico que tiene que parar la impresion, es decir aparecen los mensajes de alerta y tienes que poner un stop para salir del boton de imprimir y poder escribir en el campo, porque sino solo avisa pero imprime.

Gracias
Título: Re:Validacion campos obligatorios en un formulario en Acrobat
Publicado por: Oldwest en 22 de Septiembre 2019, 10:03
Si quieres puedo adjuntar el PDF para que veas a que me refiero y si puedes meterle mano.

Muchas gracias
Título: Re:Validacion campos obligatorios en un formulario en Acrobat
Publicado por: javi in the sky en 22 de Septiembre 2019, 21:50
No estoy seguro de si te funcionará pero puedes probar app.alert("Este campo es obligatorio. Por favor introduzca un valor.", 0, 0)

ó app.alert("Este campo es obligatorio. Por favor introduzca un valor.", 0)

para intentar que se detenga la ejecución.
Título: Re:Validacion campos obligatorios en un formulario en Acrobat
Publicado por: Oldwest en 22 de Septiembre 2019, 22:01
Al final lo solucione asi, para y si hay escrito imprime.

f = getField("telefono")
if (f.value.length == 0)
    {
    f.setFocus()
       app.alert("Tiene que rellenar el campo E-mail, es obligatorio")
 e.stopPropagation();
 }

javascript:Filesaveus()

¿como podria hacer lo mismo pero que guardara en vez de imprimir?
¿Que codigo le tendria que añadir al final.

Gracias
Título: Re:Validacion campos obligatorios en un formulario en Acrobat
Publicado por: Oldwest en 22 de Septiembre 2019, 22:02
Perdon eso es lo que quiero poner para guardar pero no guarda, para imprimir he puesto esto y si imprime

javascript:print()
Título: Re: Validacion campos obligatorios formulario Acrobat setFocus print JavaScript
Publicado por: ojedam en 27 de Enero 2021, 20:52
Hola, estoy buscando ayuda sobre este tema y es el único lugar donde pude encontrar comentarios útiles. Consulta, tengo un campo de selección SI/NO y no puedo hacer que sea obligatorio para que una opción esté marcada para que se permita guardar el documento PDF. Les agradecería mucho si me pueden ayudar. Uso Adobe DC Pro y no tengo conocimientos de programación. Saludos y gracias a todos los que me puedan ayudar.
Título: Re: Validacion campos obligatorios formulario Acrobat setFocus print JavaScript
Publicado por: javi in the sky en 28 de Enero 2021, 18:23
Hola, los checkboxes se supone que están dentro de un subform que supongamos se llama xselector_Subform y supongamos que tienes 4 checkbox que se llaman "Sicheck", "Nocheck", "Nosecheck", "Medaigualcheck"

Para cada uno de los checkboxes ante un evento change (por ejemplo form1.xselector_Subform.Sicheck::change) habría que lanzar un script similar a esto:

Código: [Seleccionar]
if (xselector_Subform.Page1.Sicheck.rawValue == "0" && xselector_Subform.Page1.Nocheck.rawValue == "0" && xselector_Subform.Page1.Nosecheck.rawValue == "0" && xselector_Subform.Page1.Medaigualcheck.rawValue == "0")

{xfa.host.messageBox("Debes seleccionar al menos un checkbox para poder continuar."); xfa.event.cancelAction = 1;}

Título: Re: Validacion campos obligatorios formulario Acrobat setFocus print JavaScript
Publicado por: ojedam en 28 de Enero 2021, 20:19
Javi, muchas gracias por tu respuesta y el tiempo que te tomaste para ayudarme. Lo voy a probar con las instrucciones que me pasaste. Que tengas un excelente día. Saludos.