Вопрос по javascript, css, css3 – Определить переполнение текста: многоточие активно в поле ввода

1

Мне интересно, есть ли способ обнаружить, еслиtext-overflow:ellipsis активен в поле ввода, поэтому я могу показать всплывающую подсказку с полным текстом.

Css:

<code>input[type='text']
{
    text-overflow:ellipsis;
}
</code>

Html:

<code><input type="text" onmouseover="Tooltip.Show(this)" value="some long text" />
</code>

Javascript:

<code>Tooltip.Show = function (input)
{
    // This is where i need the see if the current input show ellipsis.
    if ($(input).isEllipsisActive()) 
    {
        // Show the tooltip
    }
}
</code>

BR
Andreas

Ваш Ответ

2   ответа
5

когда вводимый текст слишком длинный и скрытый ... нет встроенной поддержки проверки, которая выглядит следующим образом. Вы можете взломать это. Вы можете создать контейнер 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;
}
Error: User Rate Limit Exceeded
1

Просто отредактировал немного ваше решение:

 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;
}
Error: User Rate Limit Exceeded

Похожие вопросы