Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 07.11.2017
Сообщений: 121

Проблема в условии функции

11.11.2018, 18:59. Показов 629. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! У меня есть небольшая программа, в одном из условий которой какая-то проблема. Программка в целом работает, но некорректно, подскажите, пожалуйста, где ошибка!
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var num = document.getElementById('input');
document.querySelector('input').addEventListener('keydown', one);
function one(){
    if (num.keyCode === 13){
        function foo(){
            if (num > 10){
                var result = math.pow(num, 2);
                alert(result);
            } else if (num === 8 || 9){
                var result = num - 1;
                alert(result);
            } else {
                alert('Число меньше 7');
            }
        }
    } else {
        alert('Что-то не так!')
    }
}
Постоянно выдает 'Что-то не так!'
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.11.2018, 18:59
Ответы с готовыми решениями:

Проблема в условии
Ребят, непонимаю что делаю не так: программа ругается на условии if (Timer1->Enabled=true) Timer1->Enabled=false; Вот...

Проблема со строками в условии
Моя проблема в том, что программа отказывается входить условие. У меня есть строка, содержащая путь к файлу и нужно задать условие, что...

Проблема с isdigit() в условии
Подскажите кто знает! В 72 строке ,в условии где isdigit использую 2 раза через ||(или) если ввожу букву и число ,то букву возвращает...

10
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
11.11.2018, 19:17
Цитата Сообщение от Limongrass Посмотреть сообщение
Что-то не так!
keyCode - это устаревшее свойство объекта события клавиатуры, но не элемента. Объект события передаётся в callback-функцию. Рекомендуется использовать свойство which и, естественно, применимо к объекту события:
JavaScript
1
2
3
4
5
function one(e){
    if (e.which === 13){
        /* ... */
   }
}
Оффтоп. Какой смысл объявлять функцию внутри другой функции? Я про функцию foo()...
2
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
11.11.2018, 19:22
Подправил немножко синтаксических и логических ошибок.
Например, условно будем считать, что начальная часть строки должна быть целым числом.
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
</head>
<body>
    Введите целое число:<br />
    <input id="input1" value="" />
    <script>
        let num = document.getElementById('input1');
        num.addEventListener('keydown', one);
        function one(e) {
            if (e.keyCode === 13) {
                let value = parseInt(num.value, 10);
 
                if (value >= 10) {
                    let result = Math.pow(value, 2);
                    alert(result);
                } else if (value === 8 || value === 9) {
                    var result = value - 1;
                    alert(result);
                } else if (Number.isNaN(value))
                    alert('Не распознано целое число');
                else
                    alert('Введённое число меньше или равно 7');
            }
        }
    </script>
</body>
</html>
0
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
12.11.2018, 04:54
Цитата Сообщение от Lazy_Den Посмотреть сообщение
Рекомендуется использовать свойство which
Lazy_Den, which, вроде как, тоже deprecated.
0
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
12.11.2018, 12:30
shvyrevvg, А что не депрекейтед?
0
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
12.11.2018, 16:51
Цитата Сообщение от renat_dmitriev Посмотреть сообщение
shvyrevvg, А что не депрекейтед?
renat_dmitriev, key. Но поддержка плохая.
1
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
12.11.2018, 17:55
Lazy_Den, shvyrevvg, renat_dmitriev,
Microsoft пишет:
The which property is provided for compatibility only. The keyCode property is more widely supported; however, we recommend the key property for international keyboard layouts and improved accessibility.
Походу which из них троих самое отстойное свойство ))
---
Опять через две палки считывать свойство?
1
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
12.11.2018, 20:21
Цитата Сообщение от shvyrevvg Посмотреть сообщение
which, вроде как, тоже deprecated.
Не знал, что уже успели и это свойство записать в устаревшие.
Цитата Сообщение от amr-now Посмотреть сообщение
Походу which из них троих самое отстойное свойство
Исходя из поддержки браузерами keyCode и which, я бы так не сказал.
Цитата Сообщение от shvyrevvg Посмотреть сообщение
key. Но поддержка плохая.
В принципе, можно сделать костыль в виде полифилла, но на текущий момент, я в этом не вижу особого смысла, т.к. which, в отличии от других возможных вариантов, пока не подводил ни на десктопах, ни на мобильных.
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
12.11.2018, 20:44
Lazy_Den, теперь ни одно современное свойство не показывает именно код клавиши )))
На тип string переходят.

Definition and Usage
The key property returns the identifier of the key that was pressed when a key event occured.

Key identifiers are strings that identify keyboard buttons. The return value of this property can be a string of:

A single character (like "a", "W", "4", "+" or "$")
A multicharacter (like "F1", "Enter", "HOME" or "CAPS LOCK")
Note: This property is read-only.

Tip: If you want to find out whether the "ALT", "CTRL", "META" or "SHIFT" key was pressed when a key event occured, use the altKey, ctrlKey, metaKey or shiftKey property.
https://www.w3schools.com/jsreF/event_key_key.asp
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
12.11.2018, 22:24
Цитата Сообщение от amr-now Посмотреть сообщение
теперь ни одно современное свойство не показывает именно код клавиши
С одной поправкой - кроме 13 (Enter) и 8 (Backspace). Именно эти клавиши и отслеживаются чаще всего.
Цитата Сообщение от amr-now Посмотреть сообщение
На тип string переходят.
Может оно и правильно, но на текущий момент, из-за плохой поддержки, как правильно заметил shvyrevvg, большого энтузиазма не вызывает. Да, свойство key так же нормально работает с вышеупомянутыми клавишами, но мне привычней работать с числовыми значениями 13 и 8, чем строковыми Enter и Backspace.
0
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
13.11.2018, 00:52
Lazy_Den, amr-now, shvyrevvg, renat_dmitriev, Я вас всех приветствую
К вашему диалогу добавлю W Draft 2018 - https://www.w3.org/TR/uievents/#idl-keyboardevent
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[Constructor(DOMString type, optional KeyboardEventInit eventInitDict), Exposed=Window]
interface KeyboardEvent : UIEvent {
  // KeyLocationCode
  const unsigned long DOM_KEY_LOCATION_STANDARD = 0x00;
  const unsigned long DOM_KEY_LOCATION_LEFT = 0x01;
  const unsigned long DOM_KEY_LOCATION_RIGHT = 0x02;
  const unsigned long DOM_KEY_LOCATION_NUMPAD = 0x03;
 
  readonly attribute DOMString key;
  readonly attribute DOMString code;
  readonly attribute unsigned long location;
 
  readonly attribute boolean ctrlKey;
  readonly attribute boolean shiftKey;
  readonly attribute boolean altKey;
  readonly attribute boolean metaKey;
 
  readonly attribute boolean repeat;
  readonly attribute boolean isComposing;
 
  boolean getModifierState(DOMString keyArg);
};
Думаю стало понятно, что оbsolete/deprecated.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.11.2018, 00:52
Помогаю со студенческими работами здесь

Переименовывание файлов при условии. Проблема длинных путей
всем доброго дня! Я тут решил начать изучать Powershell и начал с написания скрипта для переименовывания файлов по условию: ...

Ошибка в условии if в функции
Вот фрагмент кода. class directoryNote { protected: vector &lt;telephone&gt; telephones; string mail; string twitter;...

Функции амперсанда в условии if
Второй день как изучаю С++, учусь по учебнику Глушакова, Коваля Смирнова. В главе про цикл while не могу разобрать пример. А конкретней...

Результат функции в условии запроса
Добрый день, очень хочу разобраться для себя в чем проблема на форме? есть функция (funSumStr), которая преобразует столбец в строку,...

jQuery выполнение функции при условии
Здравствуйте. У меня адаптивный дизайн сайта и мне нужно чтобы при изменении размера сайта появлялся блок. $.each(function() { var...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru