Как я могу проверить, изменяется ли значение на событии размытости?

В основном я должен проверить, изменяется ли значение в текстовом поле на событии 'размытости' так, чтобы, если значение не изменяется, я хотел отменить событие размытости.

Если это возможный проверить его значение изменяется пользователем на событии размытости входа элемент HTML?

16
задан Brian Tompsett - 汤莱恩 23 August 2019 в 16:37
поделиться

2 ответа

Я не думаю, что есть собственный способ сделать это. Я бы добавил функцию к событию focus , которая сохраняет текущее значение в переменной, прикрепленной к элементу ( element.oldValue = element.value ). Вы можете проверить это значение на BLur.

26
ответ дан 30 November 2019 в 16:36
поделиться

Вы не можете отменить событие blur, вам нужно перефокусироваться по таймеру. Вы можете либо установить переменную onfocus, либо установить переменную hasChanged на событие изменения. Событие blur срабатывает после события change (к сожалению, в данной ситуации), иначе можно было бы просто сбросить таймер в событии onchange.

Я бы использовал подход, подобный этому:

(function () {
    var hasChanged;
    var element = document.getElementById("myInputElement");
    element.onchange = function () { hasChanged = true; }
    element.onblur = function () {
        if (hasChanged) {
            alert("You need to change the value");

            // blur event can't actually be cancelled so refocus using a timer
            window.setTimeout(function () { element.focus(); }, 0);          
        }
        hasChanged = false;
    }
})();
4
ответ дан 30 November 2019 в 16:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: