使用jQuery插件jEditable。我遇到的问题是,在触发jEditable事件后,我希望任何可编辑的内容都可以显示文本而不是html。
例如,如果我有一个元素<span class="editable">Jack & Jill</span>
,则单击它会得到Jack & Jill
,但是我想要的是Jack & Jill
作为输入中的值,这样用户就不会看到HTML。
我必须对数据设置做些事情[也许是value.replace();或者其他的东西]。现在,我只需要它返回值。
码
$('.editable').each(function() {
$(this).editable('url', {
data: function(value, settings) {
var retval = value;
return retval;
}
});
});
最佳答案
当您使用php渲染页面时,看起来您正在使用htmlspecialchars()或类似的东西将&转换为等效于其html实体的&
。
因此,当您对其进行编辑时,需要从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