我在ext js中有一个组合框,它是动态填充的。没有什么非常复杂......它正确填充。这是组合的显示值的结构:
Name: [dynamicName]
Gender : [dynamicGender]
Age: [dynamicAge]
目标是让名称:,性别:和年龄:在<b></b>
标签内。动态值应为普通文本。
假设我定义了一个数组,我将从中填充组合的数据存储区。这是数组:
var arr=[[id1, <b>Name:</b>],[id2, <b>Gender:</b>],[id3, <b>Age:</b>]]
事情就是当我点击列表中的下拉菜单时,它们显示正确。一旦用户选择了一个选项,让我们说在所选选项中的名称...,格式化就会出错。错误的意思是,粗体文字没有显示。而是显示字符串文字<b>Name:</b> dynamicName
。
我如何使用tpl语法来解决这个问题?
答案 0 :(得分:2)
你可以用css解决这个问题。这是一种方式:
在组合框的配置中,添加:
itemCls: 'make-bold'
(或任何你想要的名字)
然后,在样式表中添加(使用相同的名称):
.make-bold input {
font-weight: bold;
}
这将为您的输入框设置样式(在您从组合框中选择后显示的内容)粗体。
答案 1 :(得分:1)
虽然选项列表由<div>
元素组成,因此允许样式化,但字段本身只是<input>
元素,而且这些元素不支持内容样式。
所以答案是:不,你不能。
扩展答案是:我很确定有人做了一个替代的组合框组件实现,它使用不同的HTML标记并允许在该字段中设置样式内容。尝试询问ExtJS论坛。
答案 2 :(得分:0)
我有类似的问题。我想在组合列表粗体中进行一些选择,但是当选择值时,我不希望输入中的HTML标记:
<强> 1。使用模板作为this tutorial说明,请参阅使用模板更改组合框项目的外观。
或者
2.使用选择列表器和正则表达式。您可以在“选择”事件中添加一个侦听器,然后只需使用一些正则表达式来删除HTML标记,例如 /&lt; [^&gt;] *&gt; / g 从输入字段中删除HTML标记。现在,用于格式化列表的HTML不会影响输入。