【问题标题】:not able to remove the placeholder using jquery无法使用 jquery 删除占位符
【发布时间】:2015-04-01 06:46:34
【问题描述】:

一旦用户关注输入文本字段,我想删除 占位符

   $('#keyfob').attr('placeholder','Please click here for Key Fob scanning to work');

        $('#keyfob').attr('placeholder', function () {
            this.toggle = !this.toggle;
            return this.toggle ? $(this).data('placeholder') : "";
        });
    }, 1500);

这是我用来显示 blinking 占位符的函数,keyfob 是字段 ID,我已在字段的模糊事件中返回此代码。

所以在这个字段上我必须隐藏或删除闪烁的占位符文本。

$('#keyfob').attr('placeholder','');

这是我用来删除或隐藏占位符的功能,但不知何故它没有隐藏。

谁能帮我解决这个问题?

【问题讨论】:

  • 你的HTML呢?
  • $('#keyfob').each(function(){ 等等什么?您有多个 ID 为 keyfob 的元素?
  • 对不起,我错误地发布了代码,现在我已经编辑了代码,你现在可以看看吗?

标签: javascript jquery html css user-interface


【解决方案1】:

您可以使用onfocusonblur 事件并在它们各自的处理程序中清除或设置占位符的文本。试试这个,

解决方案 1

HTML:

<input type="text" id="keyfob" class="customform col-sm-12 text-red" data-required='true' placeholder="Please click here to Key Fob scanning work">

jQuery :

$("#keyfob").on("focus", function(){
    previousElement = $(this);
    placeholderText = $(this).attr("placeholder");
    $(this).attr("placeholder", "");
});

$("#keyfob").on("blur", function(){
    $(previousElement).attr("placeholder", placeholderText);
});

注意: 如果你有多个 input 元素,你只需要引用那些使用相同 class 属性的元素。这将使其他一切正常工作。

jsFiddle

解决方案 2

如果您只有一个输入元素,那么您可以更轻松地处理它。试试这个方法,

$('#keyfob').on("focus blur", function(){
    $(this).attr("placeholder") == "" ? $(this).attr("placeholder", "Please click here for Key Fob scanning to work") : $(this).attr("placeholder", "");
});

jsFiddle

解决方案 3

更新代码: 要使placeholder 闪烁,请将内容placeholder 清空,然后在预定义的setInterval 中再次填充。并且onfocus 使用clearInterval 清除闪光灯setInterval

jQuery :

previousElement = $("#keyfob");
placeholderText = $("#keyfob").attr("placeholder");

$("#keyfob").on("focus", function(){
    $(this).attr("placeholder", "");
    clearInterval(blinker);
});

$("#keyfob").on("blur", function(){
    $(previousElement).attr("placeholder", placeholderText);
        console.log(previousElement);
    blinker = setInterval(function(){
        $("#keyfob").attr("placeholder") == "" ? $("#keyfob").attr("placeholder", "Please click here for Key Fob scanning to work"): $("#keyfob").attr("placeholder", "");
    }, 1000);
});

$("#keyfob").blur();

jsFiddle

【讨论】:

  • 使用onfocus事件而不是点击。
  • focus 确实更合适。因为任何人都可能使用不会触发click 事件的TAB 键穿过input 元素。
  • @Ashad Shanto,感谢您的帮助,还有更多事情我想在 focusout 上闪烁占位符文本,您能帮我解决这个问题吗? -Bhairav
  • @Ashad Shanto,感谢您的回复。当我第一次启动应用程序时它正在工作但问题仍然存在,当我登录到我的应用程序并返回主页时,新问题是光标和文本都在使用你拥有的代码闪烁发送。你能提供一些其他的解决方案吗?
  • 请在小提琴中分享您的问题。以便我查看问题所在。
猜你喜欢
  • 2015-07-08
  • 2015-09-30
  • 2018-06-15
  • 2012-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-13
  • 2020-06-02
相关资源
最近更新 更多