scripts script google formularios form examples ejemplos docs developer apps google-apps-script google-spreadsheet google-form

google-apps-script - formularios - google forms javascript



Campo oculto en un formulario de Google (3)

Estoy agregando un ID único a cada envío del formulario. En este momento, convertí ese ID en el primer campo y lo rellené con la ID, junto con un texto de ayuda solicitando al usuario que no modifique este campo. ¿Hay alguna opción por la cual no puedo mostrar esta opción al usuario?


Creo que encontré una solución a tu problema. Una secuencia de comandos en la hoja a la que van sus datos de formulario se puede activar en el envío de formulario. A continuación, puede copiar e incrementar un "rango" para cada fila enviada.

* editar, se solicitó el código de muestra. Para que este código funcione, debe "instalar un desencadenador" utilizando el menú de recursos en su secuencia de comandos de la aplicación de Google, y usar "desde la hoja de cálculo" "al enviar el formulario". He hervido lo que estoy haciendo hasta el siguiente fragmento.

function myFormUpdates(e) { var spreadsheet = SpreadsheetApp.getActive() //select the sheet you''re form is going to post data to var sheet = spreadsheet.setActiveSheet(spreadsheet.getSheets()[1]) //select the last row and a unused column var cell = sheet.getRange(sheet.getLastRow(), 3) //set data cell.setValue(''Data'') }


Supongo que solo está interesado en formas de asignar programáticamente una ID única antes de que el usuario complete su formulario.

No, Google Forms todavía no tiene soporte directo para los campos ocultos como los que tiene en Formularios HTML. Su única opción parece ser la ruta de diseño personalizada , que ya conoce.

Aquí hay dos ideas prometedoras que simplemente no funcionan ...

  1. Completa una pregunta eliminada. Si borra una pregunta de un formulario, permanece en la hoja de cálculo de respuestas: desafortunadamente Forms suprime los valores de las preguntas eliminadas que se presentan en las URL precargadas; de lo contrario, podría engañar su identificación única en el envío de esa manera. (Pensé que esto podría ser una solución inteligente, pero me decepcionó que no funcionara).

  2. Completa una pregunta en una página omitida 1 . Puede configurar una pregunta en una segunda página que salteará el formulario en vivo, y también puede generar una URL precompletada para esa pregunta. Hasta ahora, todo bien, pero si el usuario no navega a esa página, la respuesta precargada no se envía.

1 Gracias a @AdamL, quien propuso esta idea durante una discusión previa sobre este tema en el foro anterior.


Usted no puede hacer esto directamente con Google Formularios, pero puede evitarlo:

  1. Crea el formulario de google que contiene el campo oculto.
  2. Cree una aplicación de Google Wep ( https://developers.google.com/apps-script/guides/web )
  3. Inserte el siguiente código en el archivo Code.gs predeterminado. (Esto básicamente abre una plantilla index.html)

    doGet(e) { return HtmlService.createTemplateFromFile(''index'').evaluate(); }

  4. Cree un nuevo archivo index.html con el código fuente de su formulario.

  5. Haga que el campo de entrada quede oculto agregando style="display:none" a su <div> encierra
  6. Inserte cualquier información de plantilla en el campo <input value=""> usando <?= your_gscript_code() ?>
  7. Publique la aplicación web (Publicar / Implementar aplicación web ...) y listo. Ahora tiene un enlace a un formulario que tiene el campo deseado oculto y precargado con su valor oculto.

Con esta solución puede aplicar cualquier estilo personalizado e incluso deshacerse de otros elementos html innecesarios mientras mantiene el formulario alojado por Google.