我不知道这个有没有特别的名字,但是是否有一种简单而好用的方法来设置输入框中的默认文本,在焦点处消失并在模糊时重新出现,如果文本框为空?
我不知道这个有没有特别的名字,但是是否有一种简单而好用的方法来设置输入框中的默认文本,在焦点处消失并在模糊时重新出现,如果文本框为空?
<input type="text" placeholder="type here" data-placeholder-text="type here" />
这将在所有现代浏览器上运行,并在 IE 上优雅地降级。但是,对于 IE,您将需要使用 JavaScript。
$(document).ready(function() {
var $input = $('#id_of_input_element');
$input.focus(function() {
if($(this).val() == $(this).data('placeholder-text')) {
$(this).val('')
}
}).blur(function() {
if($(this).val() == '') {
$(this).val($(this).data('placeholder-text'));
}
}).trigger('blur');
}):
这个功能被称为水印,可以通过多种方式实现,其中之一是
onfocus="if(this.value=='Enter Email')this.value=''"
onblur="if(this.value=='')this.value='Enter Email'"
这个词是WATERMARK
我建议使用插件,除非你有大量的时间开发和测试。当编写此代码时,需要注意许多问题和副作用。
Here is solution.
$(".defaultText").focus(function(srcc)
{
if ($(this).val() == $(this)[0].title)
{
$(this).removeClass("defaultTextActive");
$(this).val("");
}
});
$(".defaultText").blur(function()
{
if ($(this).val() == "")
{
$(this).addClass("defaultTextActive");
$(this).val($(this)[0].title);
}
});
$(".defaultText").blur();
$(function(){
$(".makedefault").bind("blur",function(){
if($(this).val().length == 0)
{
$(this).val($(this).attr('title'));
}
});
$(".makedefault").bind("focus",function(){
if($(this).val() == $(this).attr('title'))
{
$(this).val("");
}
});
});
你可以使用这个插件(我是共同作者)
https://github.com/tanin47/jquery.default_text
它克隆一个输入字段并将其放置在那里。这是我的方法(使用jQuery):
<input id="myBox" type="text" />
<script>
// Input field and default text
var $element = $('#myBox');
var defaultText = 'Hello World';
$element.focus(function(){
// Focused
$element.removeClass('defocused').addClass('focused');
if($element.val() == defaultText)
$element.val('');
}).blur(function(){
// Defocused
$element.removeClass('focused').addClass('defocused');
if($element.val() == '')
$element.val(defaultText);
});
// Initialization
$element.blur();
</script>