Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.12.2014, 23:47
Аспирант
Отправить личное сообщение для Skriptor Посмотреть профиль Найти все сообщения от Skriptor
 
Регистрация: 08.12.2014
Сообщений: 31

По поводу синтаксиса, что не так
Почему не срабатывает функция?
http://jsfiddle.net/Webtoper/85krmpwb/
Ответить с цитированием
  #2 (permalink)  
Старый 27.12.2014, 00:01
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

Не срабатывает - потому что слева в фидле выбрано onLoad, а потому твой код помещается в анонимную функцию вызываемую при загрузке страницы, и функция check становится локальной, не доступной из глобальной области видимости. Потому при клике её просто не находит.

А работает не правильно, после убирания onLoad - потому что условие заданно не правильно:
if(numbers!=1 || numbers!=2 || numbers!=3)
если( (numbers не равно 1) или (numbers не равно 2) или (numbers не равно 3) )
Допустим numbers == 1, ок, первое условие ложно, но уже второе(numbers не равно 2) - истинно. Условие должно быть:
if(numbers!=1 && numbers!=2 && numbers!=3)


P.S. В javascript не принято кидать исключения на каждый чих. Исключения следует использовать по прямому назначению(критические ошибки). Для всего остального более чем хватает обычной логики.
__________________
29375, 35

Последний раз редактировалось Aetae, 27.12.2014 в 00:04.
Ответить с цитированием
  #3 (permalink)  
Старый 27.12.2014, 00:26
Аспирант
Отправить личное сообщение для Skriptor Посмотреть профиль Найти все сообщения от Skriptor
 
Регистрация: 08.12.2014
Сообщений: 31

Ага, спасибо! Понятно теперь.
Думал просто сначала, что && потребует чтобы было введено вместе 1 и 2 и 3 (то есть, если ввести, например, 1 или 2 просто - то не сработает).
Ответить с цитированием
  #4 (permalink)  
Старый 27.12.2014, 06:33
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Логичней будет написать такое условие:

if(numbers < 1 || numbers > 3) {

}
Ответить с цитированием
  #5 (permalink)  
Старый 27.12.2014, 23:58
Аспирант
Отправить личное сообщение для Skriptor Посмотреть профиль Найти все сообщения от Skriptor
 
Регистрация: 08.12.2014
Сообщений: 31

Сообщение от Ruslan_xDD Посмотреть сообщение
Логичней будет написать такое условие:

if(numbers < 1 || numbers > 3) {

}
А если пользователь введет текст?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Извините что создаю еще одну тему, но мне нужна помощь и ваше мнение megaupload Оффтопик 11 27.05.2013 12:58
Посоветуйте новику, что я делаю не так danil-n2 Общие вопросы Javascript 5 26.04.2013 21:22
Психологическая деформация программистов DreamTheater Оффтопик 59 24.03.2012 05:03
Разбираем AjaxOOP eai Общие вопросы Javascript 41 04.11.2010 23:37
Что не так с регуляркой? man Серверные языки и технологии 1 23.10.2010 16:07