使用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 }

 

你可能感兴趣的:(jeditable)