jEditable将输入中的HTML转换为文本

时间:2011-10-23 18:31:13

标签: jquery jquery-plugins jeditable

使用jQuery插件jEditable。我遇到的问题是,在触发jEditable事件后,我想要任何可编辑的内容来显示文本而不是html。

例如,如果我有一个元素<span class="editable">Jack & Jill</span>,当我点击它时,我得到Jack &amp; Jill,但我想要的是Jack & Jill作为输入中的值,这样用户就不会看不到HTML。

我必须要对数据设置做些事[可能是value.replace();或者其他的东西]。现在我只是让它返回值。

CODE

$('.editable').each(function() {
      $(this).editable('url', {
                data: function(value, settings) {
                      var retval = value;
                      return retval;
                }

      });
});

2 个答案:

答案 0 :(得分:1)

当您使用php渲染页面时,看起来您正在使用htmlspecialchars()或类似的翻译&amp;进入其html实体等效&amp;

因此,当您编辑它时,您需要将其从ajax调用加载到您的服务器(它将返回实际的html,而不是通过htmlspecialchars()或任何内容运行它,而不是从页面上的项目加载信息。其他)。

Jeditable为您提供了一个很好的选择,所以尝试类似:

$('.editable').each(function() {
      $(this).editable('url', {
                loadurl  : 'http://www.example.com/returnUntouchedhtml.php',
                data: function(value, settings) {
                      var retval = value;
                      return retval;
                }

      });

});

您可以在此页面上找到更多示例/信息:http://www.appelsiini.net/projects/jeditable

答案 1 :(得分:1)

可以试试这个:

       'data': function (value, config) {
            console.log(value);
            var v = $('<p></p>').html(value).text();
            return v;
        },