使用 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 调用加载它(这将返回实际的 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
关于jquery - jEditable 将输入中的 HTML 转换为文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7868203/