双击后输入丢失占位符

时间:2017-12-26 11:06:21

标签: javascript

点击占位符消失后,在模糊处重新出现,但如果双击而不是1点击占位符就会永远消失,关闭双击默认也不会有帮助。以某种方式可以将双击视为正常点击吗?或者它应该摧毁安置者?



var input = document.getElementsByTagName("input")[0];
input.onclick = function() {
  p_holder = this.placeholder;
  this.placeholder = "";
}

input.onblur = function() {
  this.placeholder = p_holder;
}

input.ondblclick = function(e) {
  e.preventDefault();
}

<input type="text" placeholder="text goes here">
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:3)

我认为这可能就是你要找的东西。

评论在源代码中。

var input = document.getElementsByTagName("input")[0];
// Store original placeholder
var p_holder = input.placeholder;
// Remove on focus
input.onfocus = function() {
  this.placeholder = "";
}
// Restore on blur
input.onblur = function() {
  this.placeholder = p_holder;
}
<input type="text" placeholder="text goes here" />

如果您有任何疑问,请在下面发表评论,我会尽快回复您。

我希望这会有所帮助。快乐的编码!

答案 1 :(得分:0)

这不是双击,而是两次单击导致此问题,因为在第二次点击时,p_holder的值将设置为''

为防止这种情况,您可以先检查值:

input.onclick = function (){
  if (this.placeholder !== '') {
    p_holder = this.placeholder;
    this.placeholder = "";
  }
}

顺便说一句,如果你只需要处理占位符,你实际上不需要操纵它。当某些值插入输入时,浏览器会自动删除它,并在删除值时恢复它。