问题:
在做三级评论的时候遇到了很多问题,其中一个很头疼的问题就是,如何将输入框(可编辑的div)中的文字加表情发送给后台?其中的需求是不能发送“文字+img标签”,要把img标签转化成[face]’+id+’[face]这样的形式传输给后端,这个就让我比较郁闷,想了好久。
解决思路:
其实只需要把字符串中的img标签给“择出来”,取其中的id,然后把它替换成[face]’+id+’[face]即可,那好,接下来我们就这么做。废话不多说,上代码。
上代码
//发布方法
function commentNo1(oId){
//把字符串中的img标签整体替换成[face]'+id+'[face]的形式传给后台
var txt = $(".textarea").html();
//数组
var str1 = txt.match(/<img([\s\S]*?)>/g);
if(str1){
for(var i=0;i<str1.length;i++){
// 表情
if(str1[i].indexOf("src") !== -1){ //如果数组中的元素能找到src的话(因为要找img标签,所以img标签肯定有src关键字,当然,你找其他的也行,比如给img标签加class等,你找他的class也可以。)
var id = str1[i].match(/id="([\s\S]*?)"/);//如果找到src的话,那么在钙元素里面找"id"这个字符串,
id = id[0].match(/\d+/g);
var new_str = "[face]"+id[0]+"[/face]";
//然后把这个img标签替换为[face]'+id+'[face]的形式
txt = txt.replace(str1[i], new_str);
}
}
}
//给后台发送内容.
$.post("{:U('Forum/forum_f')}",{"id":oId,"ctype":1,"content":txt},function(data){
if(data.status == 0){
window.location.href="{:U('Index/index')}";
}else{
tipWords();
$('.tipWords').text(data.info);
}
});
}
好了,以上就是我关于输入框给后台发送表情+文字之前,对其进行处理的方法,觉得有必要分享一下。谢谢