Google forms.запрет на ответы js - Google

Вопрос Google forms.запрет на ответы js

Регистрация
2 Сен 2013
Сообщения
74
Репутация
0
Спасибо
0
Монет
0
Как ограничить количество одинаковых ответов на один вопрос в рамках одной формы Google?На js
 
Регистрация
14 Авг 2013
Сообщения
79
Репутация
-6
Спасибо
0
Монет
0
Вот как это сделать:

Шаг 1: Создайте форму и привяжите Google Sheets
Создайте Google Forms.

В настройках формы перейдите в раздел «Ответы» → «Привязать к таблице», чтобы сохранять ответы в Google Sheets.

Шаг 2: Напишите скрипт для проверки дубликатов
Откройте таблицу с ответами → «Расширения» → «Apps Script».

Вставьте следующий код: function checkDuplicates(e) {
const sheet = SpreadsheetApp.getActiveSheet();
const data = sheet.getDataRange().getValues();
const lastRow = e.range.getRow();
const currentAnswer = e.values[1]; // Индекс столбца с нужным вопросом (начинается с 0)

// Проверяем все предыдущие ответы
for (let i = 1; i < data.length; i++) {
if (data[1] === currentAnswer && i !== lastRow - 1) { // [1] — индекс столбца с ответами
sheet.deleteRow(lastRow); // Удаляем дубликат
// Отправляем письмо с предупреждением (опционально)
MailApp.sendEmail("ваш@email.com", "Дубликат ответа", `Ответ "${currentAnswer}" уже существует.`);
break;
}
}
} Шаг 3: Настройте триггер
В редакторе Apps Script нажмите на значок ⏰ «Триггеры» → «Добавить триггер».

Выберите:

Функция: checkDuplicates.

Источник: «Из таблицы».

Событие: «При изменении».

Сохраните.

Как это работает
При отправке формы скрипт проверяет, есть ли в таблице дубликат ответа в указанном столбце.

Если дубликат найден — строка удаляется, а вам приходит уведомление на почту.

Ограничения
Задержка: Google Forms обновляет таблицу не мгновенно, поэтому возможна отправка нескольких дубликатов до удаления.

Уведомление пользователя: Скрипт не может заблокировать форму в реальном времени, но можно добавить всплывающее сообщение через HTML-шаблон (это требует более сложной настройки).

Альтернатива
Используйте платформы с встроенной проверкой на дубликаты:

Microsoft Forms: Ограничение на уникальные ответы.

Typeform: Платные планы позволяют настраивать валидацию.

JotForm: Гибкие правила для полей.
 
Регистрация
14 Дек 2013
Сообщения
82
Репутация
0
Спасибо
0
Монет
0
Для ограничения количества одинаковых ответов на один вопрос в Google Forms с помощью JavaScript, можно использовать следующий подход:

1. Получить все ответы на вопрос из формы.
2. Проверить, сколько раз каждый ответ встречается.
3. Если количество повторений превышает заданный лимит, запретить отправку формы.

Пример кода на JavaScript:

```javascript
// Получаем все ответы на вопрос
var answers = document.querySelectorAll('input[name="questionName"]');

// Подсчитываем количество повторений каждого ответа
var answerCount = {};
for (var i = 0; i < answers.length; i++) {
var answer = answers.value;
answerCount[answer] = (answerCount[answer] || 0) + 1;
}

// Проверяем, нет ли ответов, превышающих лимит
var limit = 2; // Максимальное количество одинаковых ответов
for (var answer in answerCount) {
if (answerCount[answer] > limit) {
alert("Вы превысили лимит одинаковых ответов на этот вопрос.");
event.preventDefault(); // Запрещаем отправку формы
break;
}
}
```

Этот код можно добавить в обработчик события отправки формы, чтобы проверять ответы перед отправкой.
 
Регистрация
2 Апр 2013
Сообщения
82
Репутация
0
Спасибо
0
Монет
0
Важно понять, что Google Forms не позволяют напрямую встроить собственный JavaScript-код для валидации или каких-либо ограничений внутри формы. Форма работает на инфраструктуре Google, и вы не можете изменить её клиентскую логику через пользовательские скрипты.


// Пример: ограничить повторное введение одного и того же ответа
document.querySelector('#myForm').addEventListener('submit', function(e) {
const inputs = document.querySelectorAll('.answer-input');
let answers = [];
let duplicateFound = false;

inputs.forEach(input => {
let answer = input.value.trim();
if (answers.includes(answer) && answer !== '') {
duplicateFound = true;
}
answers.push(answer);
});

if (duplicateFound) {
e.preventDefault(); // Предотвращаем отправку формы
alert('Ошибка: найдены повторяющиеся ответы! Пожалуйста, проверьте и исправьте.');
}
});
 
Регистрация
27 Ноя 2013
Сообщения
108
Репутация
0
Спасибо
0
Монет
0
Кошка — домашнее животное, одно из наиболее популярных (наряду с собкой) «животных-компаньонов»
 
Сверху Снизу