Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.01.2019, 22:13
Аватар для AntonMs
Профессор
Отправить личное сообщение для AntonMs Посмотреть профиль Найти все сообщения от AntonMs
 
Регистрация: 25.01.2015
Сообщений: 163

Почему не работает "return false"?
Давно не писал на JS, подскажите пожалуйста почему это работает:
<input type='text' onkeydown='return false;'>
А это нет:
function inputValidation(){
 return false;
}
<input type='text' onkeydown='inputValidation()'>
Ответить с цитированием
  #2 (permalink)  
Старый 05.01.2019, 22:30
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

onkeydown='return inputValidation()'
Ответить с цитированием
  #3 (permalink)  
Старый 05.01.2019, 22:35
Аватар для AntonMs
Профессор
Отправить личное сообщение для AntonMs Посмотреть профиль Найти все сообщения от AntonMs
 
Регистрация: 25.01.2015
Сообщений: 163

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

Последний раз редактировалось AntonMs, 05.01.2019 в 22:40.
Ответить с цитированием
  #4 (permalink)  
Старый 05.01.2019, 22:53
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Потому, что нужно возвращать обработчику то, что вернет функция inputValidation. Странная однако функция, если задача запрещать ввод, достаточно определить элемент как readonly.
Ответить с цитированием
  #5 (permalink)  
Старый 05.01.2019, 23:00
Аватар для AntonMs
Профессор
Отправить личное сообщение для AntonMs Посмотреть профиль Найти все сообщения от AntonMs
 
Регистрация: 25.01.2015
Сообщений: 163

readonly не подойдет, в inputValidation много чего происходит я просто упростил.
Ответить с цитированием
  #6 (permalink)  
Старый 05.01.2019, 23:25
Аватар для AntonMs
Профессор
Отправить личное сообщение для AntonMs Посмотреть профиль Найти все сообщения от AntonMs
 
Регистрация: 25.01.2015
Сообщений: 163

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

function inputValidation(){
 //При вызове это функции element уже null
}
Ответить с цитированием
  #7 (permalink)  
Старый 05.01.2019, 23:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Сообщение от AntonMs
почему не работает "return false"?
Сообщение от AntonMs
<input type='text' onkeydown='return inputValidation()'>
Ответить с цитированием
  #8 (permalink)  
Старый 05.01.2019, 23:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

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

onload или https://learn.javascript.ru/onload-ondomcontentloaded
Ответить с цитированием
  #9 (permalink)  
Старый 05.01.2019, 23:47
Аватар для AntonMs
Профессор
Отправить личное сообщение для AntonMs Посмотреть профиль Найти все сообщения от AntonMs
 
Регистрация: 25.01.2015
Сообщений: 163

А как из "window.onload = function() {...}" можно достать функцию при событии onkeydown?
Ответить с цитированием
  #10 (permalink)  
Старый 06.01.2019, 01:14
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

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



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает "return false" если обращаюсь к нему из присоединенного файла. ice99 jQuery 8 07.11.2017 11:42
Почему Jquery не работает в arcticmodal при вызове окна с большой высотой? sergey24 Общие вопросы Javascript 5 21.09.2017 15:49
Почему не работает? Rora Общие вопросы Javascript 7 10.05.2017 10:09
не работает onsubmit = ("return false;") czp Общие вопросы Javascript 10 04.11.2011 22:36
Почему это работает? (инклуд JS в JS) Василий Б. Общие вопросы Javascript 4 11.06.2010 12:41