0

下面的脚本代码使幻影文本

$('.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

4 回答 4

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('');
    });
});
}
于 2012-12-04T13:10:34.333 回答
0

你有没有尝试过这样的事情?

$("#submit").click(function(){
    $(".ghost-text").each(function(){
        $(this).val('');
    }
})
于 2012-12-04T13:07:42.953 回答
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('');
    });
于 2012-12-04T13:07:49.720 回答
0

如果您调用“ghot text”水印并且能够使用 HTML5,请改用占位符属性:

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

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

$('form').submit(function(){
    $('.ghost-text',this).each(function(){
        $(this).removeAttr('name');
    });
});
于 2012-12-04T13:12:15.307 回答