Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.07.2015, 01:16
Интересующийся
Отправить личное сообщение для lucky89 Посмотреть профиль Найти все сообщения от lucky89
 
Регистрация: 27.10.2014
Сообщений: 16

Не могу убрать фокус с input
Здравствуйте!
Вопрос я даже точно не знаю, как сформулировать, по этому попробую как-нибудь, а потом покажу, чтобы в живую увидели.
Внутри div есть input, по верх которого div такого же размера, для блокировки input'а. При двойном клике на это блокирующем блоке, он скрывается .hide() и в input под ним ставится фокус .focus(), на этом инпате висят события focusout и chenge (точнее не на них самих а на родителе на 2 уровня выше, через делегирование). В документации сказано, что chenge срабатывает если были изменения ПРИ ПОТЕРЕ ФОКУСА, но помимо этого у меня оно почему-то срабатывает, когда были изменения и нажат Enter. Меня это даже обрадовало так как удобно, но после такого срабатывания chenge с инпата не пропадает фокус, то есть вы отредактировали, нажали ентер, данные в БД обновились, блокирующий див сверху инпата появился, но фокус все еще в инпате, видно коретку ввода и можно дальше править не убирая блокирующий див, что нехорошо. Как это получилось и как с этим бороться я не понимаю. Думал фокусироваться на элементе, которого в данный момент не видно на странице, чтоб с этого интпата убрать фокус, но не получается.
---
Посмотреть можно на сайте http://evacrm.ru/login.html
войдите используя емеил/пароди demo (без 123). Вверху настройки (символ три полоски), там товары, и двойной клик в описание семейства, изменить, нажать ентер.
Код скрипта и остального в консоли можно посмотреть (файл biz.js).
Очень надеюсь, что хоть кто-то понял о чем я спрашиваю
Помогите, чем сможете)
Ответить с цитированием
  #2 (permalink)  
Старый 05.07.2015, 15:23
Аватар для Sigizmund2012
Профессор
Отправить личное сообщение для Sigizmund2012 Посмотреть профиль Найти все сообщения от Sigizmund2012
 
Регистрация: 16.07.2014
Сообщений: 267

lucky89,
Довольно своеобразный код у вас. Для принудительной потери фокуса используйте метод blur() jquery на инпуте.
Ответить с цитированием
  #3 (permalink)  
Старый 05.07.2015, 16:47
Интересующийся
Отправить личное сообщение для lucky89 Посмотреть профиль Найти все сообщения от lucky89
 
Регистрация: 27.10.2014
Сообщений: 16

Спасибо, работает! Не понимаю, как я сам этого не нашел...
Сообщение от Sigizmund2012 Посмотреть сообщение
Довольно своеобразный код у вас.
А что в нем необычного? Можно лучше сделать?
Ответить с цитированием
  #4 (permalink)  
Старый 05.07.2015, 17:05
Аватар для Sigizmund2012
Профессор
Отправить личное сообщение для Sigizmund2012 Посмотреть профиль Найти все сообщения от Sigizmund2012
 
Регистрация: 16.07.2014
Сообщений: 267

Сообщение от lucky89
Можно лучше сделать?
Ну, лучше всегда можно сделать. Вроде и отформатирован, и откомментирован нормально. Возможно, обилие console.log() в глаза бросается. Понятно, что отладка, но всё же. В любом случае, я не говорил, что он плохой, просто своеобразный. Код новичка-перфекциониста.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При добавлении DOCTYPE "плывут" размеры input type=text Demath (X)HTML/CSS 4 08.07.2012 19:27
В каком Input фокус? Почемучкин Элементы интерфейса 10 08.12.2011 16:56
Как убрать выделение в Опере у div, получившего фокус ? spa_2002 Opera, Safari и др. 5 03.09.2009 10:42
Как убрать фокус с селекта в IE6? Shurik_ Общие вопросы Javascript 2 05.11.2008 17:14
Разным элементам input - разное форматирование. Как? eclipse (X)HTML/CSS 1 25.10.2007 13:55