JQuery 3.4.1 Не удается прочитать свойство 'значение' из неопределенного - PullRequest
4 голосов
/ 12 февраля 2020

После обновления jQuery 3.4.0 до 3.4.1, при blur() или focus() событиях на входе я получаю Cannot read property 'value' of undefined ошибку.

that.container.on('click', '.binary_field', function(){
    $("input:focus").blur();
}

Я думаю, что это может быть причина этого изменения в jquery исходный код: https://github.com/jquery/jquery/commit/24d71ac70406f522fc1b09bf7c4025251ec3aee6?diff=unified#diff -031bb62d959e7e4949d1847c82507f33L579-R583

Ответы [ 2 ]

3 голосов
/ 12 февраля 2020

Это известная проблема в jQuery 3.4.1:

https://github.com/jquery/jquery/issues/4417

Используйте JavaScript .blur () вместо jQuery метод.

3 голосов
/ 12 февраля 2020

Ваш код кажется хорошим, в вашем случае есть обходной путь, удалите jquery для этой строки.

Вы можете заменить

$("input:focus").blur()

на

document.activeElement && document.activeElement.blur() 
// Test if there is a focused element, if yes remove the focus

или (с jQuery и Vanilla Js)

$(document.activeElement)[0].blur()
// or
$("input:focus")[0].blur()

Это то же самое поведение

...