Javascript 检测输入字段上的文本溢出:省略号是否处于活动状态

Javascript 检测输入字段上的文本溢出:省略号是否处于活动状态,javascript,tooltip,ellipsis,css,Javascript,Tooltip,Ellipsis,Css,我想知道是否有一种方法可以检测文本溢出:省略号在输入字段上处于活动状态,这样我就可以显示带有全文的工具提示 Css: Html: BR 安德烈亚斯 请注意,这个问题是关于input元素的。普通HTML元素(例如,div)也必须具有 white-space: nowrap; overflow: hidden; 对于文本溢出:省略号以应用。(溢出也可以是滚动或自动)有关详细信息,请参阅。如果您想知道输入文本何时过长且隐藏。。。没有对检查这样的想法的本地支持。你可以破解它。您可以使用相同的文本创建

我想知道是否有一种方法可以检测
文本溢出:省略号
在输入字段上处于活动状态,这样我就可以显示带有全文的工具提示

Css:

Html:

BR
安德烈亚斯


请注意,这个问题是关于
input
元素的。普通HTML元素(例如,
div
)也必须具有

white-space: nowrap;
overflow: hidden;

对于
文本溢出:省略号以应用。(
溢出
也可以是
滚动
自动
)有关详细信息,请参阅。

如果您想知道输入文本何时过长且隐藏。。。没有对检查这样的想法的本地支持。你可以破解它。您可以使用相同的文本创建一个tmp容器,查看该容器/文本的宽度,并将其与输入的长度进行比较。如果tmp容器较长。。。您的文本太长,无法访问

大概是这样的:

function isEllipsisActive() {
  return_val = false;
  var text = $('input_selector').val();
  var html = "<span id="tmpsmp">" + text + "</span>";
  $(body).append(html);

  if($('input_selector').width() < $('#tmpsmp').width()) {
   return_val = true;
  }

  return return_val;
}
函数isEllipsisActive(){
返回值=false;
var text=$('input_selector').val();
var html=“”+文本+”;
$(正文).append(html);
if($('input_selector').width()<$('tmpsmp').width()){
返回值=真;
}
返回值;
}
谢谢Aleksandrenko

只需编辑一点您的解决方案:

 function isEllipsisActive(el) {
  return_val = false;
  var text = el.val();
  var html = "<span id='tmpsmp'>" + text + "</span>";
  $("body").append(html);

  if(el.width() < $('#tmpsmp').width()) {
   return_val = true;
  }
  $('#tmpsmp').remove();
  return return_val;
}
功能是智能的(el){
返回值=false;
var text=el.val();
var html=“”+文本+”;
$(“正文”).append(html);
如果(el.width()<$('#tmpsmp').width()){
返回值=真;
}
$('#tmpsmp')。删除();
返回值;
}

如果应用程序中有复杂的css规则,它将无法工作。
white-space: nowrap;
overflow: hidden;
function isEllipsisActive() {
  return_val = false;
  var text = $('input_selector').val();
  var html = "<span id="tmpsmp">" + text + "</span>";
  $(body).append(html);

  if($('input_selector').width() < $('#tmpsmp').width()) {
   return_val = true;
  }

  return return_val;
}
 function isEllipsisActive(el) {
  return_val = false;
  var text = el.val();
  var html = "<span id='tmpsmp'>" + text + "</span>";
  $("body").append(html);

  if(el.width() < $('#tmpsmp').width()) {
   return_val = true;
  }
  $('#tmpsmp').remove();
  return return_val;
}