2013-10-09 6 views
0

это простой скрипт js для очистки и восстановления входного значения, onFocus-Blur .. работает хорошо, но если я набираю там текст ane, например: aaa, то обновить страницу и очистить ввод значение с помощью кнопки Backspace или другим способом Он сохраняет 'aaa' в моей переменной по умолчаниюValue, а затем восстанавливает чистое входное значение в 'aaa' not 'search' ...Сбросить значение переменной при обновлении страницы

Есть ли какая-либо функция или метод в javaScript (jQuery) который очищает переменную память после обновления страницы, не перезагружается с помощью url-PressEnter .. Только обновление с помощью F5 или с помощью кнопки со стрелкой обновления в браузерах?

вы можете проверить, что в FireFox, couse в Chrome нет проблем, Chrome делает это сам.

Надежда кто-то поможет ..: (

спасибо))

// clear-fill search input 
var mySearch = $('input[name=newsSearch]'); 
var defaultValue = mySearch.val(); 
mySearch.focus(function(){ 
if($(this).val() == defaultValue) { 
$(this).val(''); 
} 
}); 

mySearch.blur(function(){ 
if($(this).val() == '') { 
$(this).val(defaultValue); 
} 
}); 

ответ

0

В современных браузерах, которые поддерживают html5 элементы, которые вы можете использовать атрибут placeholder на input, чтобы сделать это без каких-либо JavaScript:

HTML

<input name="newsSearch" type="text" placeholder="Search" /> 

И вы можете добавить некоторые JavaScript для поддержки старых браузеров, которые не делают никакой поддерживают атрибут замещающий:

Javascript

$(document).ready(function() { 
    function add() { 
     if ($(this).val() === '') { 
      $(this).val($(this).attr('placeholder')).addClass('placeholder'); 
     } 
    } 

    function remove() { 
     if ($(this).val() === $(this).attr('placeholder')) { 
      $(this).val('').removeClass('placeholder'); 
     } 
    } 

    // Create a dummy element for feature detection 
    if (!('placeholder' in $('<input>')[0])) { 

     // Select the elements that have a placeholder attribute 
     $('input[placeholder], textarea[placeholder]').blur(add).focus(remove).each(add); 

     // Remove the placeholder text before the form is submitted 
     $('form').submit(function() { 
      $(this).find('input[placeholder], textarea[placeholder]').each(remove); 
     }); 
    } 
}); 

Demo

Дальнейшее чтение

+0

Да я знаю, что, но я не хочу использовать HTML5, я предпочитаю иметь старую поддержку браузера слишком , thanx)) – Duke

+0

Посмотрите на резерв javascript, с которым я связался. Это дает резерв браузерам, которые не поддерживают 'placeholder'. – 3dgoo

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