Автоматически сохранять содержимое текстового поля - PullRequest
0 голосов
/ 27 сентября 2011

У меня есть текстовое поле, в которое пользователь может ввести текст. Область, в которой находится текстовое поле, может быть перезагружена с различным HTML в зависимости от того, что делает пользователь, и я хочу, чтобы текстовое поле «запоминало», что пользователь ввел в него, когда он возвращается.

Проблема начинается с того факта, что пользователь может перемещаться из текстового поля по-разному - он может загружать в мою рабочую область множество различных сегментов HTML, каждый из которых стирает текстовое поле.

Есть ли способ универсального сохранения содержимого текстового поля, когда оно выгружается? Существует ли эквивалент события onUnload () для текстового поля?

Есть два способа решить мою проблему:

  1. Настройка сторожевых функций текстового поля, которые обновляют текст, хранящийся в памяти, когда пользователь что-либо печатает.
  2. Добавьте вызов saveText () к каждой функции, которая перезагружает операционную область.

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

Спасибо

1 Ответ

1 голос
/ 27 сентября 2011

onchange - это то, что вы ищете. Когда пользователь выходит из текстового поля, происходит событие change.

onchange - лучший выбор, чем onblur или focusout, поскольку blur и focusout также запускаются, когда содержимое текстового поля не изменилось.

Базовый пример:

var textarea = document.getElementById("myTextfield");
textarea.onchange = function(ev){
    call_function_that_saves(this.value);
}

Событие unload для не встроенных элементов не существует. Подумайте, что произойдет, когда такой обработчик событий существует, и огромная страница выгружается ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...