Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как отметить только три checkbox'a из пяти? Нужно для опроса 
:(
    Опции темы
major
  Дата 20.5.2007, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 25.2.2005
Где: Москва, ЮАО

Репутация: нет
Всего: нет



Создал опрос для голосований http://etph.org.ru/var/var2.php . Теперь нужно сделать так чтоб посетители отмечали только 3 chekboxs'a из 5 . Хочу сделать это на JavaScript'e, но не мыслю как сделать. 
Приведу исходный код голосования:

Код

<html>
<body BGCOLOR="#C1E7E7">
<table cellpadding="0" bgcolor="#C1E7E7">
<form action="/var/write.php" method="post">
<input type="hidden" name="name" value="var">
<colgroup align="right"></colgroup>
<colgroup></colgroup>
<tr>
  <td>
   <pre><font color="#0C5574" style="font-size:9px; font-family:Verdana">
Готовлюсь все отведенное 
время и не успеваю:         <input type="checkbox" name="vote[0]" value="1">

Успеваю за отведенное время 
подготвиться к экзамену:<input type="checkbox" name="vote[1]" value="1">

Готовлюсь последние 
один, два дня и сдаю:       <input type="checkbox" name="vote[2]" value="1">

Готовлюсь последние один,
два дня и проваливаю:     <input type="checkbox" name="vote[3]" value="1">

Сдаю экзамен за 
дополнительную плату:    <input type="checkbox" name="vote[4]" value="1">
      </font>     </pre>
   </td>
</tr> 
<tr>
   <td align="center">

     <input type="submit" value="Голосовать">
   </td>
</tr>
</form>
</table>
</body>
</html>


Как видно подсчет результата выполняется на php.

Большая просьба помочь! Заранее благодарствую. 
PM MAIL   Вверх
igorold
Дата 21.5.2007, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: 2
Всего: 17



У меня получилось - так, правда я заменил имена ( с vote[o] на vote0 ...), а то не получалось .... если никто не откликнется - попробуй так:

Код

function checkr(f)
{
i=0;
    if (f.vote0.checked==true) { i++; }
    if (f.vote1.checked==true) { i++; }
    if (f.vote2.checked==true) { i++; }
    if (f.vote3.checked==true) { i++; }
    if (f.vote4.checked==true) { i++; }
    if (i>2)
    {
        if (f.vote0.checked!=true) { f.vote0.disabled = true; }
        if (f.vote1.checked!=true) { f.vote1.disabled = true; }
        if (f.vote2.checked!=true) { f.vote2.disabled = true; }
        if (f.vote3.checked!=true) { f.vote3.disabled = true; }
        if (f.vote4.checked!=true) { f.vote4.disabled = true; }
    }
    else
    {
        f.vote0.disabled = false;
        f.vote1.disabled = false;
        f.vote2.disabled = false;
        f.vote3.disabled = false;
        f.vote4.disabled = false;
    }
}

Код

<pre><font color="#0C5574" style="font-size:9px; font-family:Verdana">
    Готовлюсь все отведенное
    время и не успеваю:         <input type="checkbox" name="vote0" value="1" onClick="checkr(this.form)">
    Успеваю за отведенное время
    подготвиться к экзамену:    <input type="checkbox" name="vote1" value="1" onClick="checkr(this.form)">
    Готовлюсь последние
    один, два дня и сдаю:       <input type="checkbox" name="vote2" value="1" onClick="checkr(this.form)">
    Готовлюсь последние один,
    два дня и проваливаю:       <input type="checkbox" name="vote3" value="1" onClick="checkr(this.form)">
    Сдаю экзамен за
    дополнительную плату:       <input type="checkbox" name="vote4" value="1" onClick="checkr(this.form)">
</font></pre




--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
12345c
Дата 21.5.2007, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Код

<form name=fo1 onsubmit=return(ff());>
<input type="checkbox" name="vote0"><br>
<input type="checkbox" name="vote1"><br>
<input type="checkbox" name="vote2"><br>
<input type="checkbox" name="vote3"><br>
<input type="checkbox" name="vote4"><br>
<input type=submit value=Send></form>
<script>
d=document;
ff=function(){var s=0;
  for(var i=0;i<5;i++)s+=(d.getElementsByName('vote'+i)[0].checked?1:0);
alert(s);return false;
}</script>
На месте алерт-а нужно попросить посетителя оставить только 3 отметки - автоматически нельзя выбросить что-то, судя по задаче. И если будет s<=3, то возвращать  return true; (форма отправится).

Это сообщение отредактировал(а) 12345c - 21.5.2007, 13:02


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
igorold
Дата 21.5.2007, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: 2
Всего: 17



Цитата(12345c @  21.5.2007,  13:01 Найти цитируемый пост)
На месте алерт-а нужно попросить посетителя оставить только 3 отметки - автоматически нельзя выбросить что-то, судя по задаче. И если будет s<=3, то возвращать  return true; (форма отправится).

а если человек отметил, а потом раздумал и исправил ... тогда идея моего варианта - делать неотмеченные чекбоксы как disabled лучше ... 
А по твоему варианту отметил 3 и "вылетел" ... у нас в России так нельзя  smile 

я не стал в цикле все делать, чтобы наглядно было ...  smile 

Это сообщение отредактировал(а) igorold - 21.5.2007, 14:10


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
dstorm81
Дата 21.5.2007, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: 20
Всего: 39



2 igorold, может лучше перестроить логику голосования, написав например не 5 а 10 варантов?
но зато конкрететизированных.
З.Ы. на самом деле чем проще тем лучше.
З.З.Ы. маловероятно, но скрипты по сути можно отключить, и логика будет нарушена

Добавлено через 1 минуту и 31 секунду
на радиокнопках разумеется сделать


--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
igorold
Дата 21.5.2007, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: 2
Всего: 17



dstorm81, ну это пусть major думает какие варианты ему нужны ... мне просто было интересно придумать идею как реализовать, что он просит ...  smile 

а если делать на радиокнопках, тогда ему надо сгруппировать варианты по взаимоисключению, но тогда выбор получиться фиксированным, а ему надо НЕ БОЛЕЕ 3 ... насколько я понял ... 

Это сообщение отредактировал(а) igorold - 21.5.2007, 14:35


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
smartov
Дата 21.5.2007, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



Цитата(igorold @  21.5.2007,  13:09 Найти цитируемый пост)
а если человек отметил, а потом раздумал и исправил

Так и прекрасно. Пусть исправляет.

Цитата(igorold @  21.5.2007,  13:09 Найти цитируемый пост)
А по твоему варианту отметил 3 и "вылетел" ...

Убрал ненужную - отметил другую, что надо.

Надо только допистаь чуть функцию чтобы 
Цитата(12345c @  21.5.2007,  12:01 Найти цитируемый пост)
И если будет s<=3, то возвращать  return true; (форма отправится).


А так такой вариант лаконичнее и более приемлем.
PM MAIL   Вверх
major
  Дата 21.5.2007, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 25.2.2005
Где: Москва, ЮАО

Репутация: нет
Всего: нет



Народ!!! Спасибо за помощь! Мне уже помогли на другом форуме http://www.softtime.ru/forum/read.php?id_f...7809&page=1

Кто хочет посмотреть и проголосовать http://etph.org.ru/var/var2.php
PM MAIL   Вверх
Sultanische
Дата 11.7.2007, 15:12 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 8.5.2007

Репутация: 1
Всего: 1



мда начитался и прозревал ))))

Код


    function check(checker)
    {
        if (checker.checked)
        {
            if (count>=5)
            { 
                checker.checked = false; 
                return false; 
            }
            count++;
        }
        else
         count--;
    }




а везде в коде ставим 

Код

onclick="check(this)"



мда....люди люди


PM MAIL   Вверх
smartov
Дата 11.7.2007, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



Цитата(Sultanische @  11.7.2007,  14:12 Найти цитируемый пост)
мда....люди люди

Молодец. Коротко и доступно.
Жаль только проблемка есть.
Если я галочку то возьму, да с клавиатуры отмечу, то и сказочке конец.
PM MAIL   Вверх
Sultanische
Дата 11.7.2007, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 8.5.2007

Репутация: 1
Всего: 1



http://www.black-neverlands.ru/r_players.php


ну на нажимай с клавиатуры )))) у меня шот не получилося с клавы вбить больше 5 галок 
PM MAIL   Вверх
smartov
Дата 11.7.2007, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



Sultanische, занимательно. Раньше не во всех браузерах выбор с клавы вызывал событие onclick. Когда-то с этим мучался. Что ж. Значит теперь проще smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1106 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.