遗憾的是,这是一个特定的请求。
我有一个CMS,允许用户将文本输入到tinymce编辑器中,用于他们制作的各种帖子。编辑器通过ajax加载,允许从一个页面编辑多个帖子。如果点击取消,我希望能够检查是否对主文本进行了编辑。
目前我在ajax调用期间从数据库中获取文本的值,json_encode它,然后在回调期间将其存储在javascript变量中,以便稍后进行检查。当单击cancel时,使用jquery.val()获取隐藏文本区域的当前值(由tinymce用于存储提交的数据),并检查前一个ajax调用中存储的值,如下所示:
if(stored_value!=textarea.val())
{
return true
}
即使没有进行任何更改,它也始终返回true。
问题似乎是textarea.val()使用html实体,而ajax jsoned版本则没有。
萤火虫中ajax的反应如下:
<p>some text<\/p>\r\n<p>some more text<\/p>
textarea源代码如下所示:
<p>some text</p>
<p>some more text</p>
这些明显不同,但在评估时如何才能将它们视为相同?
是否有一个函数可以比较字符串的最终输出或使用javascript将一个字符串转换为另一个字符串的方式?
我尝试在ajax页面中使用html实体,但这会在警告时返回带有完整html实体的字符串,我假设因为json_encoding它将它们变成了字符。
非常感谢任何帮助。
答案 0 :(得分:0)
答案 1 :(得分:0)
我真的不相信这是jQuery的最佳方式,但它确实有效。
var test = "<p>some text</p>";
var dummy = $("<p/>");
test = dummy.text(dummy.html(test));
alert(test);
答案 2 :(得分:0)
为什么不尝试不同的方法?
在提交表单之前,请尝试比较textarea.defaultValue
和textarea.value
。如果这些值相等,则用户没有改变任何内容。