如何在IE中为输入框设置占位符

发布于 2024-12-11 16:43:58 字数 1236 浏览 1 评论 0原文

我正在尝试为 IE 中的输入框设置占位符。但它没有用...

<script>
// This adds 'placeholder' to the items listed in the jQuery .support object.
jQuery(function() {
    jQuery.support.placeholder = false;
    test = document.createElement('input');
    if('placeholder' in test) jQuery.support.placeholder = true;
});
// This adds placeholder support to browsers that wouldn't otherwise support it.
$(function() {
    if(!$.support.placeholder) { 
        var active = document.activeElement;
        $(':text').focus(function () {
            if ($(this).attr('placeholder') != '' && $(this).val() == $(this).attr('placeholder')) {
            $(this).val('').removeClass('hasPlaceholder');
            }
        }).blur(function () {
            if ($(this).attr('placeholder') != '' && ($(this).val() == '' || $(this).val() == $(this).attr('placeholder'))) {
                $(this).val($(this).attr('placeholder')).addClass('hasPlaceholder');
            }   
        });
        $(':text').blur();
        $(active).focus();
        $('form:eq(0)').submit(function () {
            $(':text.hasPlaceholder').val('');
        });
    }
});

我正在使用 jQuery 来做到这一点。第一个我定义“占位符”,第二个我添加浏览器的占位符支持。

I'm trying to set placeholder for input box in IE. But it did not work ...

<script>
// This adds 'placeholder' to the items listed in the jQuery .support object.
jQuery(function() {
    jQuery.support.placeholder = false;
    test = document.createElement('input');
    if('placeholder' in test) jQuery.support.placeholder = true;
});
// This adds placeholder support to browsers that wouldn't otherwise support it.
$(function() {
    if(!$.support.placeholder) { 
        var active = document.activeElement;
        $(':text').focus(function () {
            if ($(this).attr('placeholder') != '' && $(this).val() == $(this).attr('placeholder')) {
            $(this).val('').removeClass('hasPlaceholder');
            }
        }).blur(function () {
            if ($(this).attr('placeholder') != '' && ($(this).val() == '' || $(this).val() == $(this).attr('placeholder'))) {
                $(this).val($(this).attr('placeholder')).addClass('hasPlaceholder');
            }   
        });
        $(':text').blur();
        $(active).focus();
        $('form:eq(0)').submit(function () {
            $(':text.hasPlaceholder').val('');
        });
    }
});

I'm using jQuery to do this. The first I define "placeholder" and the second I add the placeholder support for browser.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

恋竹姑娘 2024-12-18 16:43:58

我不确定,但如果您使用框架来执行此操作,您将遇到 document.activeElement 的问题。尝试对其进行注释并调用 $(active).focus();

I'm not sure, but if you are using frames to do this, you'll run into a problem with document.activeElement. Try commenting that and the call to $(active).focus(); out.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文