easyui combobox下拉框中显示大于号小于号的问题

时间:2021-04-29 16:10:55

前两天同事做了个功能,通过勾选下拉框里的值进行列表查询,结果下拉框里的值是“0<t<=2”、“2<t<=5”、“t>5”这样的。

combobox是用脚本渲染出来的,里面的data的格式就如这样:

[{ID:"01",TEXT:"0<t<=2"},{ID:"02",TEXT:"2<t<=5"},{ID:"03",TEXT:"t>5"}]

结果<小于号被识别成了html的标签,这样就导致了下拉框里显示的值都是不正常的,这里我尝试了两种解决办法:

方法一(前台还有点问题):

我从后台取到数据之后,用Java代码进行遍历,把其中的<使用String里面的replace方法换成“&lt;”,把其中的>换成了“&gt;”

经过这一番处理之后,我发现点击下拉按钮之后里面的内容可以正常显示了,但是当我选中其中一个之后发现内容框里面的值居然成了“0&lt;t&lt;=2”、“2&lt;t&lt;=5”、“t&gt;5”,

这个我就没有继续再往后研究了,改用了方法二,有兴趣的可以继续沿着这条路走下去

方法二:

这次直接换到前台来处理,发现简单了很多,直接在前台用replace方法把<换成“&lt;”,把其中的>换成了“&gt;”,语法也很简单,只需要在渲染combobox的时候添加个formatter方法

具体代码如下:

formatter:function (row) {
var text = row.TEXT;
if (text.indexOf("<")){
text = text.replace("<","&lt;");
} else if (text.indexOf(">")) {
text = text.replace(">","&gt;");
}
var s = '<span style="font-weight:normal">' + text + '</span><br/>'
return s;
}