Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Почему не работает "return false"? (https://javascript.ru/forum/dom-window/76374-pochemu-ne-rabotaet-return-false.html)

AntonMs 05.01.2019 22:13

Почему не работает "return false"?
 
Давно не писал на JS, подскажите пожалуйста почему это работает:
<input type='text' onkeydown='return false;'>
А это нет:
function inputValidation(){
 return false;
}
<input type='text' onkeydown='inputValidation()'>

laimas 05.01.2019 22:30

onkeydown='return inputValidation()'

AntonMs 05.01.2019 22:35

Спасибо, уже решил через .preventDefault(), но не совсем понимаю теорию в данном моменте, почему не работает "return false"?

laimas 05.01.2019 22:53

Потому, что нужно возвращать обработчику то, что вернет функция inputValidation. Странная однако функция, если задача запрещать ввод, достаточно определить элемент как readonly.

AntonMs 05.01.2019 23:00

readonly не подойдет, в inputValidation много чего происходит я просто упростил.

AntonMs 05.01.2019 23:25

Кстати, еще один вопрос назрел, когда внутри inputValidation() использую поиск .getElement то элемент находится, но если заранее сохранить ссылку на элемент то получается null.
var element = document.getElementById("element");

function inputValidation(){
 //При вызове это функции element уже null
}

рони 05.01.2019 23:26

Цитата:

Сообщение от AntonMs
почему не работает "return false"?

Цитата:

Сообщение от AntonMs
<input type='text' onkeydown='return inputValidation()'>

:-?

рони 05.01.2019 23:30

Цитата:

Сообщение от AntonMs
на элемент то получается null.

потому что ещё элемента нет, браузер распарсил только скрипт.

onload или https://learn.javascript.ru/onload-ondomcontentloaded

AntonMs 05.01.2019 23:47

А как из "window.onload = function() {...}" можно достать функцию при событии onkeydown?

laimas 06.01.2019 01:14

Цитата:

Сообщение от AntonMs
достать функцию при событии

window.onload, это событие готовности DOM (см. выше - "потому что ещё элемента нет", а теперь есть), когда и можно устанавливать обработчик onkeydown, а в нем уже что хотите - доставайте, занимайтесь самовывозом, др. )


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