使用Jeditable插件时遇到的问题

Jeditable在渲染页面已有DIV=>form的时候

首先使用

$("div").html();

去获取原DIV中的内容.

这样导致一个问题, 如果原div中带有html关键字, 在获取时候会被转码.

比如&会被转成& 继而写入form中的textarea.

 

在提取html至form的时候做处理, 可以解决这个问题

$.trim(br2nl(htmlspecialchars_decode(string)))

br2nl转换原先数据库存储的<br>标签=>\n

1 function br2nl(text) {
2    return text.replace(/<br\s*\/?>/mig,"\n");
3 }

htmlspecialchars_decode 将html反转码

 1 function htmlspecialchars_decode(htmlstring, quote_style) {
 2    var str = htmlstring.replace(/&amp;/g, '&');
 3    str = str.replace(/&lt;/g, '<');
 4    str = str.replace(/&gt;/g, '>');
 5              
 6    // decode depending on quote_style
 7    if (quote_style == 'ENT_QUOTES')
 8    {
 9       str = str.replace(/&quot;/g, '"');
10       str = str.replace(/&#039;/g, '\'');
11    }
12    else if (quote_style != 'ENT_NOQUOTES')
13    {
14        // All other cases (ENT_COMPAT, default, but not ENT_NOQUOTES)
15        str = str.replace(/&quot;/g, '"');
16    }
17              
18    return str;
19 }

 

posted @ 2014-04-14 11:02  randzhao  阅读(277)  评论(0编辑  收藏  举报