0 / 0 / 0
Регистрация: 07.11.2017
Сообщений: 121

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

11.11.2018, 18:59. Показов 661. Ответов 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
6497 / 3908 / 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
6497 / 3908 / 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
6497 / 3908 / 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru