2014-01-24 4 views
2

Я пытаюсь сохранить значение в текстовом поле. Он отлично работает, если я ввожу значение в текстовое поле, а затем выхожу за пределы текстового поля и обновляю его. Я хочу знать, можно ли просто ввести значение в текстовое поле и непосредственно обновить страницу, не щелкая вне текстового поля?Как сохранить значение текстового поля без потери фокуса?

Вот сценарий:

<script> 
jQuery(function ($) { 
    if (typeof (window.localStorage) != "undefined") { 
    //set the value to the text fields 
    $("input[type=text]").val(function() { 
     return localStorage.getItem(this.id); 
    }); 

    $("input[type=text]").on("change", function() { 
     localStorage.setItem(this.id, $(this).val()); 
    }); 
    } 
}); 
</script> 

FIDDLE

ответ

2

http://jsfiddle.net/hb8eW/15/

Используйте keyup событие вместо change событие.

$("input[type=text]").on("keyup", function() { 
    localStorage.setItem(this.id, $(this).val()); 
}); 
+0

Если вы не возражаете, какая разница между клавиатурой и нажатием клавиши? – user3230425

+0

Keypress срабатывает до того, как значение отправлено, после нажатия клавиши срабатывает. – kiprainey

+1

'keyup' - срабатывает после ввода символа (после того, как пользователь отпускает ключ), где« keypress »- срабатывает, когда вставлен фактический символ. Подробнее здесь - http://www.quirksmode.org/dom /events/keys.html – Krishna

0

Событие изменения только срабатывает, когда текстовое поле теряет фокус. Вместо этого вы можете использовать событие keyup для немедленного обновления.

2

Простым способом сделать это будет прослушивание события keyup в поле формы, а не событие изменения.

$("input[type=text]").on("keyup", function() { 
    localStorage.setItem(this.id, $(this).val()); 
}); 

Вот обновленная скрипка, которая демонстрирует, как это будет работать. http://jsfiddle.net/hb8eW/16/

... и вот небольшая скрипка, демонстрирующая разницу между нажатиями клавиш, нажатиями клавиш и изменениями событий jQuery. Обратите внимание, когда контент обновляется после разных событий (и что нажатие клавиши всегда имеет один символ). http://jsfiddle.net/krainey/UhR85/

Вы можете прочитать о KeyUp здесь: http://api.jquery.com/keyup/

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