我正在寻找建议我应该根据我的需要使用哪个组件,如下所示:
我想要简单的单行编辑框,允许用户输入文本,当此编辑组件具有焦点时,所有文本的格式应相同(一种字体,一种颜色......)
但是当输入组件失去焦点时,我想"处理"它的文字和(如果适用),该文字的某些部分以不同的格式化显示(让我们说是灰色而不是标准的黑色)
是否有一些现有的组件可以达到这样的目标,或者是否有一些简单的代码/解决方案来获得这样的行为?
答案 0 :(得分:0)
您无法设置输入值的子字符串的样式。如果这是必要的,你需要创建一个与输入框的样式相匹配的自定义元素,这对于跨浏览器匹配非常具有挑战性(温和地说),并且在处理字符串时,设置{{1包含相关子字符串的元素。为简化此操作,您可以使用HTML5 span
属性。您仍然需要处理可编辑元素中文本的样式,但浏览器将处理输入交换内容。
更简单的解决方案是使用contenteditable
和:valid
伪选择器。您可以将这些与:invalid
伪选择器结合使用,以在编辑期间提供未经验证的样式。在我的头顶,这样的事情:
:focus
希望它有所帮助。
答案 1 :(得分:0)
由于无法在输入元素中格式化文本,因此需要使用div元素来实现。采用可编辑的div,如下所示
<div contenteditable="true"></div>
现在按照以下主题中的说明向其添加一个onblur事件。在onblur上调用方法进行格式化
Is it possible to write onFocus/lostFocus handler for a DIV using JS or jQuery?