javascript - 随着用户输入更改输入框文本的颜色

标签 javascript jquery css html

我想在运行时当用户在输入框中键入时更改某些单词。无论如何都要这样做,因为当我使用 replace jQuery 函数时,它会替换值但不允许我更改它的 css。谢谢

这是我目前的成就

这是 Javascript:

$("#submit-button").click(function(){
    var oldString = 'john',
    newString = '<span id="newChrome">chrome</span>'
    $("#text-editor").val($("#text-editor").val().replace(RegExp(oldString,"gi"),newString));
});

这是 HTML

<input id="text-editor" maxlength="200" width:200px; />
<button id="submit-button">Submit</button>

最佳答案

使用 contenteditable div 元素,您可以实现您在大多数现代浏览器中尝试实现的功能。

$("#submit-button").click(function() {
  var oldString = 'john',
    newString = '<span class="newChrome">chrome</span>',
    regex = new RegExp(oldString, "gi"),
    value = $("#text-editor").html(),
    str = value.replace(regex, newString);
  $("#text-editor").html(str);
});
$("#text-editor").on('input',function(){
  $a = $(this).find('span')
  $a.filter(function(){
    return $(this).html() != 'john';
  }).removeClass('newChrome');
  $a.filter(function(){
    return $(this).html() == 'chrome';
  }).addClass('newChrome');
});
.newChrome{
  color: red;
}
#text-editor{
  outline: 1px solid black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<div contenteditable="true" id="text-editor" maxlength="200" style="width:200px;"></div>
<button id="submit-button">Submit</button>

关于javascript - 随着用户输入更改输入框文本的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35969381/

相关文章:

javascript - 使用 svg 内的 javascript 函数操作 svg 外的对象

javascript - React 过滤器最佳实践

JavaScript 扩展验证

html - 获取表单输入以扩展到具有可变大小标签的容器的全宽

javascript - 如何让 Javascript 方法在我的 HTML 中打印

javascript - 如何将 HTML 表单输入插入 API 对象数组

javascript - 如何在javascript中合并具有相同值的json数组

javascript - 使用 css 或 jquery、javascript 平均增加所有框的高度

javascript - 确保元素保持指定的纵横比

jquery - 在窗口中创建多个弹出窗口