如何第一次清除焦点上的输入

How to clear an input on focus the first time?

本文关键字:输入 焦点 清除 第一次      更新时间:2023-09-26

我有两个输入:

<input type="text" value="username">
<input type="password" value="password">

如果我在一个特定的输入中,我想删除默认值(只是第一次)。我用JavaScript添加了如下属性:

onfocus="this.value='';"

但是,它每次关注它都会清除输入。如何在第一次关注它时清除输入?

您想要的被称为占位符:一个自动删除的默认值。

如果你可以接受你的占位符对IE9用户不可见,那么就这样做:

<input type="text" placeholder="username">

如果您需要与IE9兼容,请使用众多polyfill中的一个,人们已经为您处理了实现细节。

只需在输入中使用占位符,例如

<input type="text" placeholder="username">

为每个输入命名是很好的,所以:

<input type="text" name="username" placeholder="username">

尝试

onfocus="if(this.flag == undefined){ this.flag = true; this.value=''; }"

只需检查一下你的对焦功能

    onfocus="if(this.value == 'username'){this.value='';}"

<input type="text" value="username" onfocus="if(this.value == 'username'){this.value='';}">
    <input type="password" value="password" onfocus="if(this.value == 'password'){this.value='';}">

JSFIDDLE示例

如果您使用的是jQuery,您可以使用这个:

<input type="text" name="username" value="username" />

Javascript:

$('input[name=username]').one('focus', function() {
    $(this).val('');
});

.one()只触发绑定事件一次

这样尝试:-

$('.text').focus(function() {
    if (this.value == this.value) {
        $(this).val("");
    }
}).blur(function() {
    if (this.value == "") {
        $(this).val(this.value);
    }
});

http://jsfiddle.net/32Tns/296/

<input type="text" value="username" id="username" title="username" />
$( '#username' ).bind({
    'focus': function( event ) {
       $( this ).val( '' );
    },
    'blur': function( event ) {
       var obj = $( this ),
           title = obj.attr( 'title' );
       obj.val( title );
    }
})