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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Непонятная ошибка, в инпутах при назначения им стил 
:(
    Опции темы
champion
Дата 13.3.2009, 08:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Друзья! Помогите пожалуйста понять, почему не работает код ниже
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xml:lang="en" lang="en" xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>Тип</title> 
    <meta http-equiv="content-type" content="text/html; charset=windows-1251" />
    <script type="text/javascript"> 
        window.onload = init;
        function init()
        {
            var inputs = document.getElementsByTagName('input');
            
            for (input in inputs)
            {
                inputs[input].onFocus = (!Number(inputs[input]) && inputs[input].style!="undefined") ? focused (inputs[input]) : '';
            }
        }       
        function focused (obj)
        {
               obj.style.border = '1px solid red';        
        }
        
    </script>
    <style type="text/css">
    
        body  li
        {
            display: block;
            list-style-type: none;         
        }
        
        ul
        {
            margin:0;
            padding:0;
            width:  500px;
        }

        li.caption
        {
            clear: both;
            float: left;
            width: 150px;
        }    
        
        .over
        {
            border: 1px solid #999;
            background: yellow;
        }    
        li
        {
            height: 30px;
        }
    </style>
    
</head> 
<body> 

    <ul>
        <li class="caption">Корпус</li>
        <li class="field"><input type="text" name="korpus" /></li>
    </ul>
    
    <ul>
        <li class="caption">Номер помещения</li>
        <li class="field"><input type="text" name="number" /></li>
    </ul>
        
    <ul>
        <li class="caption">Тип помещения</li>
        <li class="field">
            <select name="type">
                <option>офис</option>
                <option>комп. класс</option>
                <option>лаборатория</option>
                <option>мастерская</option>
                <option>склад</option>
                <option>учебная аудитория</option>
            </select>
        </li>
    </ul>
    
</body>
</html>



--------------------
user posted image
PM MAIL   Вверх
Grig
Дата 13.3.2009, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

!Number(inp)

что ты этим хотел сказать?


--------------------
        
PM MAIL ICQ   Вверх
champion
Дата 13.3.2009, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Это была проверка на тип значения. Я поглядел, какие значения лежат в inputs[input] и с уажсом обнаружил, что там откуда то берется какая то 2 (двоечка), когда должен был быть объект. Вот и сделал проверку на "дурака", думая, что из-за этого вылетает ошибка, ибо происходит обращение к неизвестному объекту.


--------------------
user posted image
PM MAIL   Вверх
Soah
Дата 13.3.2009, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Методы JavaScript
Цитата

getElementsByTagName
Метод возвращает коллекцию элементов страницы с заданным именем тега.


Оператор for…in
Цитата

Оператор for…in выполняет заданные действия для каждого свойства объекта


Код

var inputs = document.getElementsByTagName('input');
            
for (var i=0; i < inputs.length; ++i) {
    inputs[i].onFocus = (inputs[i].style!="undefined") ? focused (inputs[i]) : '';
}

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


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



onfocus пишется маленькими буквами! 

for (input in inputs) - тоже доволько коварная конструкция. Лучше пользоваться обычным циклом
for(var input=0;input<inpets.length; input++) ...

Это сообщение отредактировал(а) ksnk - 13.3.2009, 15:30


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




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


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

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