页面刷新时重置变量值

时间:2013-10-09 23:12:31

标签: javascript jquery html

这是用于清除和恢复输入值的简单js脚本,onFocus-Blur .. 它运作良好,但如果我键入文本例如:aaa,则刷新页面并清除输入值 通过Backspace按钮或其他方式将'aaa'保存在我的defaultValue变量中,然后在'aaa'中恢复清除的输入值而不是'search'......

javaScript(jQuery)中是否有任何函数或方法在刷新页面后清除可变内存, 没有通过url-PressEnter重新加载..只能通过浏览器刷新F5或刷新箭头按钮?

您可以在FireFox中查看,在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);
}
});

1 个答案:

答案 0 :(得分:0)

在支持html5元素的现代浏览器中,您可以使用input上的placeholder属性来执行此操作,而无需任何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

进一步阅读