javascript - Typeahead 输入元素样式

标签 javascript jquery html css

我有一个简单的文本框输入,如下所示:

 <input type="text" placeholder="Search for states">

我想对其进行自动完成,类似于预先输入。自动完成部分有效,但我想在文本框中显示第一个建议:

例如,写了“Al”,我得到以下建议:

文本框:Al

  • 阿拉巴马州
  • Algolia

我想在文本框中添加褪色文本:Alabama(要褪色的 abama)。

如何使用 jQuery 或纯 JS 做到这一点? 基本上在同一个文本框中,2 个子字符串有 2 种文本样式?

如果有其他方法(例如在其上覆盖另一个透明文本控件),您可以向我展示一个很棒的示例。我无法更改 input 元素(这是给定的)。

最佳答案

代码笔: http://codepen.io/mozzi/pen/XKKJWq

这对于您的需要来说非常简单。我选择了文本而不是使其褪色,因为您无法在文本框中执行半褪色的文本。让我知道你的想法。

HTML:

<div class="ui-widget">
  <label for="automplete-1">Type state name: </label>
  <input id="automplete-1" placeholder="U.S. state name">
</div>

JavaScript:

$("#automplete-1").autocomplete({
  delay: 0,
  source: UsStateNames,
  response: function(event, ui) {
    var start = $("#automplete-1").val().length;
    $("#automplete-1").val(ui.content[0].value);
    var end = ui.content[0].value.length;
    $("#automplete-1")[0].setSelectionRange(start, end);
  }
});

关于javascript - Typeahead 输入元素样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37823262/

相关文章:

javascript - 页面加载后,jQuery fadeOut 延迟第一次不起作用

javascript - 如何用css突出显示两个文本的区别?

html - MSN网站css3过渡效果

javascript - 如何创建新闻行情

javascript - 如何在angularjs中替换PDF.js?

javascript - iframe Chrome : Uncaught DOMException: Failed to read the 'localStorage' property from 'Window' : Access is denied for this document

javascript - 使用元素的属性值获取元素

javascript - Video.js - loadeddata 事件永远不会触发

javascript - CSS3 中选择标记(下拉)中的 Padding-Left

javascript - 有什么方法可以在改变innerHTML时产生过渡效果吗?