在提交时删除ghost文本默认值的简便方法

时间:2012-12-04 13:01:17

标签: javascript jquery

下面的脚本代码会生成鬼文

$('.ghost-text').each(function(){
    var d = $(this).val();
    $(this).focus(function(){
        if ($(this).val() == d){
            $(this).val('').removeClass('ghost-text');
        }
    });
    $(this).blur(function(){
        if ($(this).val() == ''){
            $(this).val(d).addClass('ghost-text');
        }
    });
});

但是在提交时它会传递默认的幽灵值。如何在提交时将其删除?

4 个答案:

答案 0 :(得分:2)

我认为使用占位符更好:

<input type="text" id="myTxt" placeholder="enter something..."/>

或者如果你想坚持你的js:

 if($.browser.msie){
    $('.ghost-text').each(function(){
        var d = $(this).attr('placeholder');
        $(this).focus(function(){
            if ($(this).val() == d){
                $(this).val('').removeClass('ghost-text');
            }
        });
        $(this).blur(function(){
            if ($(this).val() == ''){
                $(this).val(d).addClass('ghost-text');
            }
        });
    });   

 $('form').submit(function(){
    $('.ghost-text').each(function(){
        if ($(this).val() == $(this).attr('placeholder'))
            $(this).val('');
    });
});
}

答案 1 :(得分:0)

你尝试过这样的事吗?

$("#submit").click(function(){
    $(".ghost-text").each(function(){
        $(this).val('');
    }
})

答案 2 :(得分:0)

var ghostTexts = $('.ghost-text');

    ghostTexts.each(function(){
        var $this = $(this),
            d = $(this).val();

        $this.on({
            'focus': function(){
                if ($this.val() == d){
                    $this.val('').removeClass('ghost-text');
                }
            },
            'blur': function() {
                if ($this.val() == ''){
                    $this.val(d).addClass('ghost-text');
                }
            }
        });
    });

    $('yourForm').on('submit', function() {
        ghostTexts.val('');
    });

答案 3 :(得分:0)

如果您拨打'ghot text'水印并且能够使用HTML5,请改用占位符属性:

<input type="text" placeholder="My ghost text" />

如果'ghost text'与水印无关并且不想提交它,你可以改用它:

$('form').submit(function(){
    $('.ghost-text',this).each(function(){
        $(this).removeAttr('name');
    });
});