Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Валидация формы работает не совсем так (https://javascript.ru/forum/events/66065-validaciya-formy-rabotaet-ne-sovsem-tak.html)

laimas 25.11.2016 13:39

Цитата:

Сообщение от Batyabest
Атирибут required работает на формах

Да хоть mainattr назовите его, какая разница. Вот что вы делаете:

<input type="checkbox" name="public" class="public osnova" value="Программа 1"> - я уж молчу о значении этого флажка, бог с ним, но как описано - выбирает пользователь флажок, ему показывается список:

<select name="ot_forma1" class="form-control">
<option value="">Форма обучения</option>
<option value="Очно-заочная">Очно-заочная</option>
.....

в котором он обязательно должен выбрать нечто. Вопрос - зачем проверять обязательность выбора флажка (чем вы заморачиваетесь в коде), зачем его отправлять на сервер, если Программу 1 определяет сам список?

Зачем все эти усложнения как html-структуры, так и соответствующего сценария ее обрабатывающего, а также избыточность данных для сервера?

Batyabest 25.11.2016 19:09

Цитата:

Сообщение от laimas (Сообщение 436195)
Вопрос - зачем проверять обязательность выбора флажка (чем вы заморачиваетесь в коде), зачем его отправлять на сервер, если Программу 1 определяет сам список?

Зачем все эти усложнения как html-структуры, так и соответствующего сценария ее обрабатывающего, а также избыточность данных для сервера?

А я разве проверяю обязательность выбора флажка? и как список определяет программу?
Мне нужно собрать все названия программ у выбранных флажков и проверить чтобы у выбранных же флажков было обязательно:
а) выбрана форма обучения
б) написано количество слушателей.

Далее все эти данные передаются в форму, которая открывается в модальном окне и потом форма отправляется мне на почту.

Поясните мне пожалуйста, как сделать эту задачу легче, буду крайне признателен.

laimas 26.11.2016 02:07

Цитата:

Сообщение от Batyabest
А я разве проверяю обязательность выбора флажка?

Это нужно будет делать обязательно на сервере, но если ...

а) нет никаких у вас модальных окон, модальное окно, это к примеру alert("message"). Модальный диалог, в котором действительно может быть форма есть только у IE. То есть отправка у вас, это еще собственно говоря одна форма, в которую переписывается из другой... Зачем это нужно не понять.

б) как отправляются данные на сервер не видно, но я сужу по именам полей в которых производится выбор - name="ot_forma1", и если "однотипные блоки" и отправка по именам, то я предполагаю, что в иных блоках так - name="ot_forma2" и т.д.? А если мое предположение верно, то выбор формы обучения у каждой из программ, это свой уникальный ключ. А если ключ уникален, то флажок самой программы вообще-то излишняя роскошь, ибо пришедшие на сервер ключи форм обучения с успехом могут идентифицировать чему они принадлежат.

Данные, а тем более такие как у вас, хранят в базе. Но и хранить их можно по разному. Например каждая запись имеет поле уникального ключа которым как значением и оперируют флажки, не "Программа 1" и т.п. Поле формы обучения как ENUM значения, если у всех программ она одинакова и определяется раз и навсегда. Поле описания программы и еще какие либо данные. Поле содержащее количество слушателей программы.

То есть в данном случае все описывается одной sql-таблицей, и у всех программ одни и те же имена полей, которые будут отождествляться с формой, и описаны в форме как ключи массива, а определение кому это принадлежит по значениям, так как они уникальны ибо это идентификаторы. А поступить с таким данными как у вас "ot_forma1", "ot_forma2", "public" не получится, хотя и можно сделать, но это будет сродни геморрою.

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


Часовой пояс GMT +3, время: 20:49.