jQuery在单击时擦除输入字段

时间:2014-05-27 18:31:23

标签: javascript jquery

我试图制作一个jQuery代码,以便在单击时删除my(email)输入字段的值,并且当未被单击时(.blur())该值(与之前相同)应该返回到输入字段,除非某些内容别的写的。当我单击输入字段时文本消失并在我点击时返回,但是当我写东西并删除它时,之前的值/文本不会再返回.. 继承我的代码,应用于简单的输入类型="电子邮件"

$(document).ready(function() {
var default_email = 'Skriv din email her..';

$('input[type="email"]').attr('value', default_email).focus(function() {
if ( $ (this).val() == default_email) {
    $(this).attr('value', '');
}
}).blur(function() {
if($(this).val() == '') {
    $(this).attr('value', default_email);
};
});

});

2 个答案:

答案 0 :(得分:1)

您正在尝试制作自己的placeholder。很好,但更自然和有效的是使用原生:

<input type="email" placeholder="Skriv din email her.." >

演示:http://jsfiddle.net/E9EzZ/2/

如果您仍想创建自己的版本,请按以下方式修改代码:

var default_email = 'Skriv din email her..';

$('input[type="email"]').val(default_email)
.focus(function () {
    if (this.value == default_email) {
        this.value = '';
    }
})
.blur(function () {
    if (this.value == '') {
        this.value = default_email;
    };
});

演示:http://jsfiddle.net/E9EzZ/1/

答案 1 :(得分:1)

检查这个小提琴:http://jsfiddle.net/LfNZu/ 只需将功能attr()更改为val()

即可