Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: ошибка JavaScript
 
 автор: vale1487   (25.04.2010 в 16:14)   письмо автору
 
 

Не работает проверка выбранности радиокнопки. где же ошибка



var radios=document.forms.tutform.elements.color;// путь к кнопкам
for(var i=0;i<radios.length;i++)// пройти по массиву из всех кнопок
{
    
    
if(radios[i].checked) return true;

}


alert('цвет не выбран');
 return false;

  Ответить  
 
 автор: АЯ   (25.04.2010 в 18:36)   письмо автору
 
   для: vale1487   (25.04.2010 в 16:14)
 

var radios=document.forms.tutform.elements.color;

  Ответить  
 
 автор: vale1487   (25.04.2010 в 21:25)   письмо автору
 
   для: АЯ   (25.04.2010 в 18:36)
 

а как сообственно java узнает какои из радиобуттонов на странице я проверяю если его имя не указывать?

  Ответить  
 
 автор: АЯ   (25.04.2010 в 21:30)   письмо автору
 
   для: vale1487   (25.04.2010 в 21:25)
 

никак не узнает, если не скажете ему об этом
if(radios[i].name == 'color' && radios[i].checked) return true;

  Ответить  
 
 автор: vale1487   (26.04.2010 в 21:37)   письмо автору
 
   для: АЯ   (25.04.2010 в 21:30)
 

теперь не работает проверка формы на заполненость имени. Хотя по отдельности обе проверки работаю, а вместе нехотят. Почему же так



<script type="text/javascript">
function validateForm()
{
var form_object=document.forms.tutform;// определени к какой форме проверка
if(form_object.elements.firstname.value=='')// проверкак заполнения полей
{

alert('Вы не ввели свое имя');
return false;// не отсылать
}

else

{
return true;// отослать


}
// проверка выбора кнопок



var radios=document.forms.tutform.elements;
for(var i=0;i<radios.length;i++)// пройти по массиву из всех кнопок
{
    
    
if(radios[i].name == 'color' && radios[i].checked) return true;

}
// если хоть одна кнопка выбрана вернуть да



alert('цвет не выбран');
 return false;



}



</script>







  Ответить  
 
 автор: АЯ   (27.04.2010 в 13:52)   письмо автору
 
   для: vale1487   (26.04.2010 в 21:37)
 

Когда вы пишете return (и неважно, что вы там возвращаете - true или false) дальнейшее выполнение функции прекращается.
У вас первая проверка ПО-ЛЮБОМУ приводит к return. Соответственно, до второй проверки парсер добраться никак не может.

  Ответить  
 
 автор: vale1487   (27.04.2010 в 22:17)   письмо автору
 
   для: АЯ   (27.04.2010 в 13:52)
 

значит у меня такое хреновый учебник, получается здесь все без ретурна надо

  Ответить  
 
 автор: АЯ   (28.04.2010 в 12:42)   письмо автору
 
   для: vale1487   (27.04.2010 в 22:17)
 

Да нет, return нужен.

Вы составьте блок-схему. Типа такой:
        +--------+          +--------+
        | Первая |          | Вторая |
ВХОДИМ->|        |->ХОРОШО->|        |->ХОРОШО->ВЫХОДИМ С true
        |проверка|          |проверка|
        +--------+          +--------+
            |                   |
            V                   V
          ПЛОХО               ПЛОХО
            |                   |
            +---------+---------+
                      |
           АЛЕРТОМ КРИЧИМ, ЧТО ПЛОХО
                      |
                      V
                ВЫХОДИМ С false
Используя операторы, кои у вас уже написаны в функции, соберите свою функцию заново, следуя этой блок-схеме.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования