2013-04-11 2 views
0

Я пытаюсь создать скрипт в Google Spreadsheet, чтобы отклонить отправку форм, если поле ответа не = 12. Это, на наш взгляд, экранные представления, не относящиеся к человеку, и их уменьшение при отправке спама через Google Forms.Сценарий Google Spreadsheet отклоняет записи из формы

В форме у меня есть текстовое поле: Имя и текстовое поле: Ответ с подсказкой «5 + 7 =»

function myFunction(e) { 
    var answer = ""; 

    try{ 
    for(var field in e.namedValues) { 
     if (field == 'Answer') { 
      answer = e.namedValues[field].toString(); 

     if (Answer !== 12) { // check to make sure input is 12 

      throw "not the right answer"; // throw an exception with the error message 
     } 
     } //end if 
    }//end for 

    } catch(e) { 
    throw "try failed"; 
    } //end try 
} 

После сохранения этого сценария Затем я создал триггер для запуска MYFUNCTION | Из таблицы | По форме отправьте. Как только это было на месте, я попробовал его в живой форме, Боб | 13, и запись все еще появляется в электронной таблице.

Любые предложения, почему это не работает?

+0

'Ответ' и' ответ' - это разные имена переменных ... Javascript чувствителен к регистру. Кроме того, попытка «бросить» потерпит неудачу »;' в блоке catch должен прочитать 'throw e; 'Таким образом вы не просто бросаете другую ошибку по сравнению с первой. – HardScale

ответ

0

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

Единственный способ изменить представления - это создать форму через UiApp или HtmlService и запустить javascript против этого.

Смежные вопросы