2011-09-26 3 views
0

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

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

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

Есть два способа я могу видеть, что бы решить мою проблему:

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

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

Спасибо,

ответ

1

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

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

Основной пример:

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

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

Смежные вопросы