我花了几个小时来解决这个问题,但找不到任何帮助,所以放弃了。我只是想恢复输入框的先前值,如果用户将其清除并且在输入失去焦点时不留下任何内容。例如,如果我的输入框中显示“澳大利亚布里斯类”,并且用户从输入中删除该文本,然后按 Tab 键,我希望它将输入恢复为“澳大利亚布里斯类”。这是我的代码:
$('input#search-location').on("focus", function() {
$(this).data("previous-value", $(this).val());
});
$('input#search-location').on("blur", function() {
if ($(this).val() == "") {
// alert($(this).data("previous-value"));
$(this).val($(this).data("previous-value"));
}
});
两个事件都会触发,如果我取消注释模糊函数中的警报,它会正确显示以前的值。但我的输入框中没有显示任何内容,控制台中也没有错误。我想我错过了一些愚蠢的东西......我感谢任何帮助!
最佳答案
您的代码应该可以正常工作并在此处执行 Live Demo
请注意,您需要在页面元素呈现后执行代码,因此需要将代码包装在
中$(function() { ... });
如果您想将其设置为页面加载时的默认值,请尝试
$('input#search-location').on("blur", function() {
if ($(this).val() == "") {
$(this).val(this.defaultValue);
}
});
较新的浏览器会在此处给出提示:
<input placeholder="Type your name" />
您可以帮助旧版浏览器支持它
$(function() {
if (!placeholderIsSupported) {
$('#search-location1')
.val($('#search-location1').attr("placeholder"))
.on("blur", function() {
if ($(this).val() == "") {
$(this).val($(this).attr("placeholder"));
}
})
.on("focus",function() {
if ($(this).val()==$(this).attr("placeholder")) $(this).val("");
});
}
});
function placeholderIsSupported() {
var test = document.createElement('input');
return ('placeholder' in test);
}
关于jQuery - 如果为空,则将输入值设置为模糊时的先前值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17569192/