jQuery фокус после onblur, используя «это» - PullRequest
0 голосов
/ 07 июня 2018

У меня есть несколько полей, которые должны проверить минимальное значение после onblur и вернуться к полю, если значение не является правильным.$ (this) .focus () не работает.

$(".PartMin").blur(function()
{
    var Value = this.value.replace("$", "");
    if(Value < 115)
    {
        alert("Value cannot be less than $115.00");
        $(this).focus();
    }
});

1 Ответ

0 голосов
/ 07 июня 2018

Установка фокуса в обратных вызовах размытия часто проблематична.Я обнаружил, что введение задержки помогает:

$(".PartMin").blur(function()
{
    var Value = this.value.replace("$", "");
    if(Value < 115)
    {
        alert("Value cannot be less than $115.00");
        var element = this;
        setTimeout(function() {
          $(element).focus();
        }, 50);
    }
});

Живой пример (не работает с фрагментами стека из-за пользовательского интерфейса фрагмента).


Но: Я настоятельно рекомендую , а не делать навязчивую проверку (вывод предупреждения) на размытие.Разрешите пользователю перемещаться по полям и предоставлять ненавязчивую обратную связь (цвета и т. Д.) И только навязчивую обратную связь, когда он пытается подтвердить действие, используя данные.

...