Ограничить отправку формы на основе выбора формы - PullRequest
0 голосов
/ 18 ноября 2011

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

Есть 3 варианта выбора:

Набор 1 [Исходные параметры сначала, ни один из других наборов не должен отображаться.]

Одобрить (переключатель)

Отклонить (переключатель)

Set 2 [Этот набор зависит от выбора Set 1. Если выбрано «Отклонить» из набора 1, этот набор должен быть показан. В противном случае он будет скрыт.]

Ревизия (переключатель)

Исправление (переключатель)

Set 3 [Этот набор зависит от выбора Set 2 (и, конечно, Set 2 видимым). Если в наборе 1 выбрано «Редакция» или «Исправление», отобразите «Текст редакции» или «Текст исправления» на основе соответствующего выбора из набора 2.] *

Редакция текста (текстовое поле)

Исправление текста (textarea)

Набор 2 зависит от набора 1, а набор 3 зависит от выбора набора 2.

Хорошо, это общее количество заявок, которое я хотел бы получить на основе выбора:

  • Если пользователь ... сначала одобряет , динамически устанавливает общее количество отправлений равным 1 . Форма не будет отправлена ​​в следующий раз, считая текущую отправку как 1.

  • Если пользователь ... сначала отклоняет , динамически устанавливает общее количество отправлений равным 2 . Осталось еще одно представление, считая текущее представление как 1.

  • Если пользователь ... сначала одобряет, а затем отклоняет , динамически устанавливает общее количество отправлений равным 3 . Осталось еще одно представление, считая текущее представление как 1.

  • Если пользователь ... сначала не одобряет, а затем одобряет , динамически устанавливает общее количество отправлений равным 2 . Осталось еще одно представление, считая текущее представление как 1.

  • Если пользователь ... сначала не одобряет, а затем выбирает ревизию , , показывает ревизию textarea и динамически устанавливает общее количество представлений равным 2 . Осталось еще одно представление, считая текущее представление как 1.

  • Если пользователь ... сначала отклоняет, а затем выбирает исправление , показывает исправление textarea и динамически устанавливает общее количество отправлений равным 2 . Осталось еще одно представление, считая текущее представление как 1.

Это общий шаблон, который я бы хотел ограничить. Таким образом, в основном, если пользователь одобряет, он больше не может отправить форму после текущей отправки. Если пользователь не одобряет, ему разрешено только 2 дополнительных представления. Я не до конца разработал, но я надеюсь получить некоторые предложения и помощь от некоторых экспертов.

Еще одна вещь, которую следует учитывать, - это любые альтернативы, если у пользователя отключен JavaScript, а его куки отключены (если это требуется для данного решения).

1 Ответ

1 голос
/ 18 ноября 2011

Чтобы справиться с "no javascript", вам нужно заставить сайт работать без поддержки скриптов.Это всегда хороший первый шаг.Вся ваша проверка и логика должны быть реплицированы на сервере в любом случае, потому что вы не можете контролировать клиента.

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

...