Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.06.2010, 12:11
Интересующийся
Отправить личное сообщение для sympler Посмотреть профиль Найти все сообщения от sympler
 
Регистрация: 07.06.2010
Сообщений: 11

помогите с CheckBox (времени в обрез)
вот форма
<form action="" method="POST" name="test">

<input type="checkbox" value="1" id="chek1" onclick="checkCheck()" name="var1" />1<br>
<input type="checkbox" value="2" id="chek2" onclick="checkCheck()" name="var2" />2<br>
<input type="checkbox" value="3" id="chek3" onclick="checkCheck()" name="var3" />3<br>
<input type="checkbox" value="4" id="chek4" onclick="checkCheck()" name="var4" />4<br>
<input type="checkbox" value="5" id="chek5" onclick="checkCheck()" name="var5" />5<br>
<input type="checkbox" value="6" id="chek6" onclick="checkCheck()" name="var6" />6<br>
<input type="checkbox" value="7" id="chek7" onclick="checkCheck()" name="var7" />7<br>
<input type="checkbox" value="8" id="chek8" onclick="checkCheck()" name="var8" />8<br> 
<input type="checkbox" value="9" id="chek9" onclick="checkCheck()" name="var9" />9<br>
<input type="checkbox" value="10" id="chek10" onclick="checkCheck()" name="var10" />10<br>

<input type="submit" value="Проголосовать"  name="opros" /><br>

</form>


задание очень простое, но в силу слабого знания javascript решить быстро не могу, а время поджимает:

необходимо дать пользователю выбрать только один или два чексбокса
Ответить с цитированием
  #2 (permalink)  
Старый 07.06.2010, 12:18
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

полностью готовое решения я вам не дам, по той причине, что форум нужен для помощи,а не полного решения за вас проблемы.
Что вам понадобится из знаний:
1)
<input type="checkbox" value="1" id="chek1" onclick="checkCheck(this)" name="var1" />1<br>

таким образом, мы получим в ф-ции checkCheck первым параметром ссылку на измененый чекбокс
2)
Если мы объявим вне этой ф-ции, переменную то она также будет внутри видна.
таким образом мы сможем ее использовать как счетчик выбранных чекбоксов, прибаляя единицу, когда был включен чекбокс, и удаляя еденицу, когда снимается
3)
тот факт, что чекбокс был выбран, определяется его свойством checked
аналогично его можно снять, если мы третий пытаемся сделать.

Из даного материала у вас должно поулчится сделать полный сркипт
Ответить с цитированием
  #3 (permalink)  
Старый 07.06.2010, 12:23
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

(function () {
	var nodes = document.test.getElementsByTagName('input');
	for (var i = 0; i < nodes.length; i++) {
		if (nodes[i].type == 'checkbox') {
			nodes[i].onclick = function (e) {
				e = e || window.event;
				if ((function () {
					var x = 0;
					for (var z = 0; z < nodes.length; z++) {
						if (nodes[z].checked) {
							x++;
						}
					}
					return x;
				})() > 2) {
					e.preventDefault(),
					e.returnValue = false;
				}
			}
		}
	}
})();

Последний раз редактировалось exec, 07.06.2010 в 12:37.
Ответить с цитированием
  #4 (permalink)  
Старый 07.06.2010, 12:26
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

exec,
это не раздел о jQuery
Ответить с цитированием
  #5 (permalink)  
Старый 07.06.2010, 13:37
Интересующийся
Отправить личное сообщение для sympler Посмотреть профиль Найти все сообщения от sympler
 
Регистрация: 07.06.2010
Сообщений: 11

вот решение, все таки сделал ))) если кому не понятно, пишите на мой блог

<script language="javascript">
<!--
var check = 0;
var kolvo = 10; // количество чекбоксов  в нашей форме
function checkCheck(elem) 
{
     // если ставим галочку +1, если убираем галочку с чекбокса -1 
    if (elem.checked) 
    {
       check += 1; 
    }
    else
    {
       check -= 1; 
    }

      if (check == '2')    //   чек больше или равен 2, надо дизаблить все НЕ отмеченные!!
      {
        for (var i = 1; i <= kolvo; i++) 
        {
          var my = 'chek'+ i;
          if (document.getElementById(my).checked == false)
          {
              document.getElementById(my).disabled=true;
          }
        }
   
      }
      else    // чек не равен 2, надо раздизаблить все чекбоксы!!
      {
        for (var i = 1; i <= kolvo; i++) 
        {
          var my = 'chek'+ i;
          document.getElementById(my).disabled=false;
        } 
      }   
}

//-->
</script>

<form action="/" method="POST" name="test">

<input type="checkbox" value="1" id="chek1" onclick="checkCheck(this)" name="var1" />1<br>
<input type="checkbox" value="2" id="chek2" onclick="checkCheck(this)" name="var2" />2<br>
<input type="checkbox" value="3" id="chek3" onclick="checkCheck(this)" name="var3" />3<br>
<input type="checkbox" value="4" id="chek4" onclick="checkCheck(this)" name="var4" />4<br>
<input type="checkbox" value="5" id="chek5" onclick="checkCheck(this)" name="var5" />5<br>
<input type="checkbox" value="6" id="chek6" onclick="checkCheck(this)" name="var6" />6<br>
<input type="checkbox" value="7" id="chek7" onclick="checkCheck(this)" name="var7" />7<br>
<input type="checkbox" value="8" id="chek8" onclick="checkCheck(this)" name="var8" />8<br> 
<input type="checkbox" value="9" id="chek9" onclick="checkCheck(this)" name="var9" />9<br>
<input type="checkbox" value="10" id="chek10" onclick="checkCheck(this)" name="var10" />10<br>

<input type="submit" value="Проголосовать"  name="opros" /><br>

</form>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
спрятать/показать поле ввода при нажатии на checkbox g1r Элементы интерфейса 34 16.12.2017 00:34
Згачения выделенных checkbox vova_b jQuery 22 24.12.2013 20:52
Помогите нубу Fongolcs Работа 34 19.05.2010 22:45
Помогите пожалуйста разобраться Kupu4 Ваши сайты и скрипты 0 21.01.2010 10:44