Проверка флажков - PullRequest
       3

Проверка флажков

2 голосов
/ 22 февраля 2012

Я просто не могу разобраться с валидацией JavaScript. Я видел учебники, и это просто не до меня. Кто-то, пожалуйста, дайте мне ПРОСТОЕ пошаговое руководство о том, как я могу добавить проверки для флажков. Так скажи, что это моя форма:

<form name="form1" method = "post">

<input name="Conservatives" type="checkbox" value="Conservatives" /> Conservative

<input name="Liberal Democrats" type="checkbox" value="Liberal Democrats" /> Liberal Democrats

<input name="Labour" type="checkbox" value="Labour" /> Labour


</form>

Я хочу, чтобы пользователь установил как минимум 2 флажка. проверка должна быть сделана с клиентской стороны вещей, которые я тогда приму значения, используя php для отправки в базу данных? Любая помощь, ребята?

Ответы [ 2 ]

0 голосов
/ 22 февраля 2012

Похоже, что вы действительно хотите переключатели, а не флажки.

Если это так, используйте это:

<form action="" method="post">
    <label><input type="radio" name="vote" value="Conserv" /> Conservative</label><br />
    <label><input type="radio" name="vote" value="LibDem" /> Liberal Democrats</label><br />
    <label><input type="radio" name="vote" value="Labour" /> Labour</label><br />
</form>

Затем, в любом коде на стороне сервера, который у вас есть,переменная vote POST будет иметь "Conserv", "LibDem" или "Labour" в зависимости от выбора пользователя.

0 голосов
/ 22 февраля 2012

Итак, вы хотите подтвердить, что, основываясь на вашем комментарии, по крайней мере два из этих флажков отмечены? Я бы дал им все одно и то же имя:

<input name="partyAffiliation" type="checkbox" value="Conservatives" /> Conservative
<input name="partyAffiliation" type="checkbox" value="Liberal Democrats" /> Liberal Democrats
<input name="partyAffiliation" type="checkbox" value="Labour" /> Labour

Затем зациклите их и посмотрите, сколько из них проверено. document.getElementsByName даст вам флажки, каждый из которых будет иметь свойство checked.

var allCbs = document.getElementsByName("partyAffiliation");
var numChecked = 0;
for(var i = 0, max = allCbs.length; i < max; i++)
    if (allCbs[i].checked)
        numChecked++;

if (numChecked < 2)
   alert("Select at least two parties!");

Я не знаю деталей вашего проекта, но я просто упомяну, что jQuery сделает приведенный выше код довольно простым, если вы не против использования этой библиотеки:

var numChecked = $("input[name='partyAffiliation']:checked").length;

if (numChecked < 2)
   alert("Select at least two parties!");

EDIT

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

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...