Динамическое заполнение полей формы на основе других ответов перед отправкой

У меня есть форма, которую я хочу динамически изменить, я прочитал документы, но не могу найти окончательного ответа. Могу ли я сделать так, чтобы моя форма удаляла варианты из выпадающих списков, потому что они использовали переключатель № 2 для третьего вопроса? Могу ли я отформатировать текст из вопроса 1 и использовать его для предварительного заполнения вопроса 6 с тем же ответом (по умолчанию он должен быть изменен)?

В основном мне нужно использовать код, чтобы определить, был ли адрес написан краткими формами (st, rd, cres, ct), а также удлинить и заглавные буквы (улица, дорога). Я даже не знаю, возможно ли это. Если кто-нибудь может предоставить пример кода или указать мне правильные справочные документы, я был бы признателен. Если нет, то возможно ли это на веб-сервере, если некоторые из моих вариантов с множественным выбором необходимо прочитать из электронной таблицы Google? Могу ли я сделать это через Сайты Google?


person user3772708    schedule 07.07.2014    source источник


Ответы (2)


Вы смотрели на Form класс служб Google Apps?

Формы занятий

Здесь утверждается:

Формы могут быть доступны или созданы из FormApp.

Например, вы можете использовать:

addTextItem()

OR:

createChoice(value)

Документация Google

 // Open a form by ID and add a new multiple choice item.
 var form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz');
 var item = form.addMultipleChoiceItem();
 item.setTitle('Do you prefer cats or dogs?')
     .setChoices([
         item.createChoice('Cats'),
         item.createChoice('Dogs')
      ])
     .showOtherOption(true);

Вы не хотите открывать новую форму, а используете текущую открытую.

/**
 * Adds a custom menu to the active form, containing a single menu item for
 * invoking checkResponses() specified below.
 */
function onOpen() {
  FormApp.getUi()
      .createMenu('My Menu')
      .addItem('Check responses', 'checkResponses')
      .addToUi();
}

Проверить текущие ответы?

/**
 * Gets the list of responses and checks the average rating from the form
 * created in createForm() above.
 */
function checkResponses() {
  var form = FormApp.getActiveForm();
  var responses = form.getResponses();
  var score = 0;
  for (var i = 0; i < responses.length; i++) {
    var itemResponses = responses[i].getItemResponses();
    for (var j = 0; j < itemResponses.length; j++) {
      var itemResponse = itemResponses[j];
      if (itemResponse.getItem().getType() == FormApp.ItemType.SCALE) {
        score += itemResponse.getResponse();
      }
    }
    var average = score / responses.length;
    FormApp.getUi().alert('The score is ' + average);
  }
}
person Alan Wells    schedule 08.07.2014

Вы можете использовать HTML-службу сценариев приложений; написать HTML для создания пользовательской формы; напишите код JavaScript, чтобы делать то, что вы хотите; затем добавьте скрипт приложений на сайт Google. Или просто запустите службу Apps Script HTML как отдельный веб-сайт. Но этот вариант требует, чтобы вы могли писать HTML и JavaScript. То, что вы хотите сделать, возможно.

Что касается создания настраиваемой формы, проверки пользовательского ввода и его изменения, это можно сделать в HTML-службе сценариев приложений. Затем вам нужно сохранить данные где-нибудь. Google Forms удобен для пользователей, не имеющих знаний в области программирования.

Похоже, вы просто ищете общую информацию о том, что можно и что нельзя с разными продуктами, чтобы вы могли сделать выбор.

Чтобы прочитать о службе HTML, щелкните следующую ссылку в качестве места для начала:

HTML-сервис документации Google

person Alan Wells    schedule 07.07.2014
comment
У меня есть опыт работы с HTML, js и CSS, я очень надеялся получить ответ, например, вы могли бы использовать getLiveResponses(e); и создайте новый вопрос или что-то в этом роде... похоже, мне придется сделать это трудным путем :( Спасибо за помощь. - person user3772708; 07.07.2014