Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите найти ошибку в JS (https://javascript.ru/forum/misc/44036-pomogite-najjti-oshibku-v-js.html)

Pavelvernigorov 03.01.2014 17:36

Помогите найти ошибку в JS
 
Здаров ребят! Давно не использовал JS и в конец всё забыл. Собираюсь всё повторить снова, но сейчас пока задаю вопрос:

Итак есть код
function check(){
	if(document.getElementById('login').length=0)
	{
		document.getElementById('error').innerHTML=Введите логин!
	}


Объявлен в шапке страницы. Проверяет длинну строки в инпуте onchange-ом. Но как не пытался ничего не проходит. Вызываю функцию а ей вообще пофигу.

рони 03.01.2014 17:47

Pavelvernigorov,
Операторы сравнения
http://javascript.ru/String

danik.js 03.01.2014 17:51

Ну и в добавок у элемента нет никакого свойства length

cyber 03.01.2014 17:51

Pavelvernigorov, wtf??
Объясняю что делает этот код

//document.getElementById('login') находим элемент с id 'login'
//document.getElementById('login').length=0 - добавляем найденному элементу  свойство length и присваиваем ему 0
// if(document.getElementById('login').length=0) и выполняем проверку 0 == false  условие выполняется всегда
//а код внутри условия вообще вызывает ошибку, так как строки должны заключаться в кавычки
if(document.getElementById('login').length=0)
	{
		document.getElementById('error').innerHTML=Введите логин!
	}


вот так нужно проверить значение

var log = document.getElementById("login");
      
if(log.value.length == 0) {
  //.. тут код
}

Pavelvernigorov 03.01.2014 18:03

cyber, danik.js, рони Слов нет! Реально ошибки ужасно глупые. Спасибо ребят. Щяс почитаю статьи.

danik.js 03.01.2014 23:10

Цитата:

Сообщение от cyber
а код внутри условия вообще вызывает ошибку, так как строки должны заключаться в кавычки

Он вызовет ошибку еще на момент разбора кода, то есть до начала выполнения этого кода.
Цитата:

Сообщение от cyber
и выполняем проверку 0 == false  условие выполняется всегда

Откуда там сравнение с false? Нет там такого. Условие сводится к if (0) и оно не выполнится никогда.


Часовой пояс GMT +3, время: 12:30.