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

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

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



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

      });
});

最佳答案

当您使用php渲染页面时,看起来您正在使用htmlspecialchars()或类似的东西将&转换为等效于其html实体的&amp;

因此,当您对其进行编辑时,需要从ajax调用中将其加载到服务器(而不是通过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

09-27 10:35