0

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

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);
}
});
4

1 回答 1

0

在支持 html5 元素的现代浏览器中,您可以使用placeholderan 上的属性input来执行此操作,而无需任何 javascript:

HTML

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

您可以添加一些 javascript 来支持不支持 placeholder 属性的旧浏览器:

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);
        });
    }
});

演示

进一步阅读

于 2013-10-09T23:38:01.380 回答