如何删除焦点上多个输入的默认值

时间:2012-08-01 21:47:33

标签: jquery input focus default

在这个问题How to remove default value of input on focus的答案中创建了一个很好的函数,但它如何重用并应用于多个输入字段?

类似的东西,但正在工作http://jsfiddle.net/hDCsZ/177/

基本我很确定。提前致谢。

3 个答案:

答案 0 :(得分:1)

您可以使用defaultValue属性:

$(document).ready(function(){ 
    $("input").focus(function() {
        if(this.value == this.defaultValue) {
             this.value = "";
        }
    }).blur(function(){
        if(this.value.length == 0) {
           this.value = this.defaultValue;
        }
    });
})

DEMO

答案 1 :(得分:0)

http://jsfiddle.net/zSCn3/

基本上,不是两次编写函数,我们可以使用.each并将其应用于所有可用输入。通过在每个输入中使用.each jQuery循环并单独应用函数,因此default_value = $(this).val()将是特定输入的值。

    $(document).ready(function(){

        $('input[type="text"]').each(function(){    
            var default_value = $(this).val();        
            $(this).focus(function() {
                if($(this).val() == default_value)
                {
                     $(this).val("");
                }
            }).blur(function(){
                if($(this).val().length == 0) /*Small update*/
                {
                    $(this).val(default_value);
                }
            });
        });
    })​;​

答案 2 :(得分:0)

http://jsfiddle.net/mpH6U/

$(document).ready(function(){
    var input = $('input');

    input.each(function(){
       $(this).data('default', $(this).val());
    }).focus(function(){
        if($(this).val() == $(this).data('default')){
            $(this).val("");
        }            
    }).blur(function(){
        if(!$(this).val()){
            $(this).val($(this).data('default'));
        }
    });  
})​