[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: В чем ошибка????
Shkiper
Всем Привет!!! Делал скрипт для проверки включен ли чекбокс. Если все выключены то выдаст алрерт иначе пойдет дальше. Вот код:
$('#form').submit(function (evtObj){
var elements=$('input[id="news"]');
var len=elements.size();
for (i=0;i<len;i++)
{
var result=$('input[id="news"]').prop('checked');
if(num_on)
{
if(result == false)
{
num_on = num_on + 1;
}
}
else{

var num_on = 1;
}

}


if(num_on == len)
{
alert("Вы не выбрали новость для удаления");
evtObj.preventDefault();
}

}
);

Все чекбоксы имеют id=news. ТАк вот если я не выделил ни 1 чекбокс то выдает алерт и останавливает выполнение сценариев. А если выделю тоже вылазит. Почему??? Что не так <_< ????



Спустя 1 минута, 38 секунд (1.05.2012 - 16:50) Игорь_Vasinsky написал(а):
Цитата
Все чекбоксы имеют id=news.

идентификатор должен быть уникальным, на то он и идентификатор.

Спустя 4 минуты, 4 секунды (1.05.2012 - 16:54) Shkiper написал(а):
Всмысле уникальный????

Спустя 1 минута, 56 секунд (1.05.2012 - 16:56) Игорь_Vasinsky написал(а):
всмысле - разный, не повторяемый.

Спустя 1 минута, 4 секунды (1.05.2012 - 16:57) Shkiper написал(а):
В нем ошибка чтоль????

Спустя 1 минута, 14 секунд (1.05.2012 - 16:58) Игорь_Vasinsky написал(а):
ну ты сделай их уникальными и проверь. я код бегло смотрел, но

Цитата
Все чекбоксы имеют id=news.


уже в корне не верно

Спустя 30 секунд (1.05.2012 - 16:59) Игорь_Vasinsky написал(а):
используй class - тогда прокатит.

Спустя 2 минуты, 42 секунды (1.05.2012 - 17:02) Shkiper написал(а):
Неа не прокатило rolleyes.gif

Спустя 7 минут, 18 секунд (1.05.2012 - 17:09) Игорь_Vasinsky написал(а):
а так не каширно?

$('input[class=news][checked]')



и в самих чекбоксах тож смени id на class

Спустя 4 минуты, 17 секунд (1.05.2012 - 17:13) Shkiper написал(а):
Неа не работает
$('#form').submit(function (evtObj){
var elements=$('input[class=news][checked]')
var len=elements.size();// узнаем сколько элементов присутствует на странице
for (i=0;i<len;i++)
{
var result=$('input[class=news][checked]');
if(num_on)
{
if(result == false)
{
num_on = num_on + 1;
}
}
else{

var num_on = 1;
}

}


if(num_on == len)
{
alert("Вы не выбрали новость для удаления");
evtObj.preventDefault();
}

}
);

Спустя 3 минуты, 24 секунды (1.05.2012 - 17:17) Игорь_Vasinsky написал(а):
Цитата
if(num_on)

WTF num_on???

консолью или файрбагом пользуемся для отладки JS

Спустя 12 минут, 41 секунда (1.05.2012 - 17:29) Shkiper написал(а):
Ошибок не выдает rolleyes.gif

Спустя 21 минута, 8 секунд (1.05.2012 - 17:50) Игорь_Vasinsky написал(а):
блин... что такое num_on????????????????????????????????????

Спустя 2 минуты, 41 секунда (1.05.2012 - 17:53) Shkiper написал(а):
Короче если result равен false то есть не отмечена то записываем +1 в переменную num_on

Спустя 3 минуты, 18 секунд (1.05.2012 - 17:56) Игорь_Vasinsky написал(а):
Цитата
if(num_on)
  {
    if(result == false)


так у тя то всё наоборот блин.

сначала проверил num_on, потом проверяешь result. за логикой приложения то следить нужно.

Спустя 12 минут, 54 секунды (1.05.2012 - 18:09) Shkiper написал(а):
	   $('#form').submit(function (evtObj){
var elements=$('input[class=news]')
var len=elements.size();
for (i=0;i<len;i++)
{
var result=$('input[class=news]').prop('checked');

if(result == false)
{

if(num_on)
{
num_on = num_on + 1;
}else{
var num_on = 1;
}

}


}


if(num_on == len)
{
alert("Вы не выбрали новость для удаления");
evtObj.preventDefault();
}

}
);

Опять при отмеченой и при не отмеченой алерт вылазит :D

Спустя 11 минут, 26 секунд (1.05.2012 - 18:21) Игорь_Vasinsky написал(а):
У тя же

if(num_on)


всегда false - вообще ранее не инициализирована же.

	   $('#form').submit(function (evtObj){
var elements=$('input[class=news]')
var len=elements.size();
for (i=0;i<len;i++)
{
var result=$('input[class=news]').prop('checked');

if(result == false)
{

if(num_on)


построй логику как логику, а не чёрти что.

Спустя 5 минут, 10 секунд (1.05.2012 - 18:26) Shkiper написал(а):
Игорь_Vasinsky напомню я новичек(темболее в JS). Я знаю моя просьба выглядит нахально и нагло, но "Покажи правильный код"

Спустя 25 минут, 43 секунды (1.05.2012 - 18:52) Игорь_Vasinsky написал(а):
10 чекбоксов - если не один не отмечен - то будет алерт.

<?php
header("Content-type: text/html; charset=utf-8");
for($i = 0; $i<10; $i++)
echo $i.'<input class="news" type="checkbox" name="'.$i.'"><br />';
?>

<script type="text/javascript">
var checks = document.getElementsByClassName("news");
var j = 0;

for (var i=0; i<checks.length; i++)
{
if(checks[i].checked == false)
j++;
}

if(j == checks.length)
alert('All checkbox disabled!');

</
script>


Делаешь функцию и вешаешь на кнопу формы

Спустя 17 часов, 14 минут, 19 секунд (2.05.2012 - 12:06) Shkiper написал(а):
Игорь_Vasinsky спасибо, но смысл почти такой же biggrin.gif.

Спустя 3 часа, 15 минут, 46 секунд (2.05.2012 - 15:22) Michael написал(а):

 ! 

М
В который раз, а он опять создает темы с бессмысленными заглавиями. Закрываю. Бан на пару дней.
Michael
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.