2

我有 2 个输入:

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

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

onfocus="this.value='';"

但这每次都会清除输入。第一次关注时如何清除输入呢?

4

7 回答 7

8

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

如果您可以接受您的占位符对 IE9 用户不可见,请执行以下操作:

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

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

于 2013-08-29T16:04:29.640 回答
6

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

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

最好为每个输入命名,所以:

<input type="text" name="username" placeholder="username">
于 2013-08-29T16:04:43.770 回答
3

尝试

onfocus="if(this.flag == undefined){ this.flag = true; this.value=''; }"
于 2013-08-29T16:04:22.300 回答
1

如果你使用 jQuery,你可以使用这个:

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

Javascript:

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

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

于 2013-08-29T16:09:40.707 回答
0
<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 );
    }
})
于 2013-08-29T16:09:24.003 回答
0

试试这样: -

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

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

于 2013-08-29T16:05:20.097 回答
0

只需检查您的 onfocus 功能

    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 示例

于 2013-08-29T16:05:35.770 回答