Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado 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
-
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:
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.
-
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://)
-
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.
-
No hay manera, no me permite escribir, me sale el mensaje constantemente, activando la opcion que sea. :-[
Gracias de nuevo y buenas noches
-
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
-
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
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.")
}
-
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
-
Si quieres puedo adjuntar el PDF para que veas a que me refiero y si puedes meterle mano.
Muchas gracias
-
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.
-
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
-
Perdon eso es lo que quiero poner para guardar pero no guarda, para imprimir he puesto esto y si imprime
javascript:print()
-
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.
-
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:
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;}
-
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.