这是用于清除和恢复输入值的简单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);
}
});
答案 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 强>
进一步阅读