jquery ajax 返回的html字符串 解析乱码问题 本帖最后由 wl59138528 于 2011-11-08 23:56:11 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 result="<div id='Record_add_"+this.info_num+"'>" +"<form name='Record_form_add_"+this.info_num+"' method='POST' id='Record_form_add_"+this.info_num+"' action='InvestorControl!addRecord'>" +"<table><tbody><tr><td>通话记录</td><td><img src='/images/stock/icon_del.gif' align='absmiddle' hspace='3'>" +"<a style='cursor:pointer;' onclick='deleteinfo('Record','add','"+this.info_num+"')'>删除</a>"+"</td></tr><tr><td colspan='2'><textarea rows='8' cols='60'></textarea></td></tr><tr></tr></tbody></table><p>"+"<img style='cursor: pointer' onclick='Record_save('record_form_add_"+this.info_num+"')' src='/images/stock/btn_save1.gif'></p></form></div>";楼主你这种写法不对吧。应该是最外层用单引号,里面的遇到单引号用转义就行\"。遇到双引号就"。而且你的js方法里用了两个单引号,明显会错的啊。应该这么写:var a = '<a onclick="deleteinfo(\"Record\",\"add\",\""+this.info_num+"\");">删除</a>'; 这位大哥感谢您的回答,我result中的内容是从服务器端返回来的,但是在客户端解析的时候出现了乱码。 把action弄出来看看呢,我怀疑你是在方法里面把位置就写错了。 感谢您的回复,action 已经在上面了。谢谢 Struts2_action:public String Record() throws IOException { result="<div id='Record_add_"+this.info_num+"'>" + "<form name='Record_form_add_"+this.info_num+ "' method='POST' id='Record_form_add_"+this.info_num+ "' action='InvestorControl!addRecord'>" + "<table><tbody><tr><td>通话记录</td><td><img src='/images/stock/icon_del.gif' align='absmiddle' hspace='3'>" + "<a style='cursor:pointer;' onclick='deleteinfo('Record','add','"+this.info_num+"')'>删除</a>"+ "</td></tr><tr><td colspan='2'><textarea rows='8' cols='60'></textarea></td></tr><tr></tr></tbody></table><p>"+ "<img style='cursor: pointer' onclick='Record_save('record_form_add_"+this.info_num+"')' src='/images/stock/btn_save1.gif'></p></form></div>"; return SUCCESS;}请将代码那个‘单引号换成“引号!如下:= "<div id='Record_add_"+x+"'>" + "<form name='Record_form_add_"+y+ "' method='POST' id='Record_form_add_"+z+ "' action='InvestorControl!addRecord'>" + "<table><tbody><tr><td>通话记录</td><td><img src='/images/stock/icon_del.gif' align='absmiddle' hspace='3'>" + "<a style=\"cursor:pointer;\" onclick=\"deleteinfo('Record','add','"+z+"')\">删除</a>"+ "</td></tr><tr><td colspan='2'><textarea rows='8' cols='60'></textarea></td></tr><tr></tr></tbody></table><p>"+ "<img style=\"cursor:pointer;\" onclick=\"Record_save('record_form_add_"+z+"')\" src='/images/stock/btn_save1.gif'></p></form></div>"; 不好意思,代码太多了,有点乱,所以没注意到你的action。给你重新提供一个使用juery的ajax方法吧。 public void Record() throws IOException { String result="这里组装你要的页面"; response.setHeader("Cache-Control", "no-cache"); response.setContentType("text/json;charset=UTF-8"); response.getWriter().write(result); }使用这种形式,你可以随心所欲的返回你要的数据,而不必担心格式,编码问题。至于你之前的方法,可能是在解析"cursor:"这里的时候发生了错误,jquery把你要解析的result当作了json数据,所以就按照了json的格式把你返回的result解析到了页面上。 页面出现乱码是中文乱码 还是页面的样式串了. 中文乱码可以采用9楼的方式处理。但是你处理的html字符串写法真都有问题。单双引号引起的页面样式串了,比如input没有> 是半个input 页面就会串。 谢谢问题已经解决,你的办法会更简便些,但针对这个问题,gongxu6688的办法可行。谢谢 【提问求助】怎样通过ant脚本获取某个路径下面的文件名!! 问个很弱智的问题 textarea设置滚动条样式 菜鸟请教个简单问题:winXP下j2sdk1.4.2+tomcat5.0怎么配置?在线等. 我换了N种操作系统了,为什么Tomcat装好后启动不起来? 幫我看看啊.謝謝. 如何添加Struts的标签? 求教 一个关于DB2数据库的jdbc驱动问题?在线等,急? servlet不能用jdbc进行数据库操作却可以用jdbc_odbc来操作,请问怎么回事? struts2+jqueryui插件使用显示不出来(各位看看 待解决) 百度百科的内容是怎么存储的
"<form name='Record_form_add_"+this.info_num+
"' method='POST' id='Record_form_add_"+this.info_num+
"' action='InvestorControl!addRecord'>" +
"<table><tbody><tr><td>通话记录</td><td><img src='/images/stock/icon_del.gif' align='absmiddle' hspace='3'>" +
"<a style='cursor:pointer;' onclick='deleteinfo('Record','add','"+this.info_num+"')'>删除</a>"+
"</td></tr><tr><td colspan='2'><textarea rows='8' cols='60'></textarea></td></tr><tr></tr></tbody></table><p>"+
"<img style='cursor: pointer' onclick='Record_save('record_form_add_"+this.info_num+"')' src='/images/stock/btn_save1.gif'></p></form></div>";
楼主你这种写法不对吧。应该是最外层用单引号,里面的遇到单引号用转义就行\"。遇到双引号就"。而且你的js方法里用了两个单引号,明显会错的啊。
应该这么写:var a = '<a onclick="deleteinfo(\"Record\",\"add\",\""+this.info_num+"\");">删除</a>';
public String Record() throws IOException { result="<div id='Record_add_"+this.info_num+"'>" +
"<form name='Record_form_add_"+this.info_num+
"' method='POST' id='Record_form_add_"+this.info_num+
"' action='InvestorControl!addRecord'>" +
"<table><tbody><tr><td>通话记录</td><td><img src='/images/stock/icon_del.gif' align='absmiddle' hspace='3'>" +
"<a style='cursor:pointer;' onclick='deleteinfo('Record','add','"+this.info_num+"')'>删除</a>"+
"</td></tr><tr><td colspan='2'><textarea rows='8' cols='60'></textarea></td></tr><tr></tr></tbody></table><p>"+
"<img style='cursor: pointer' onclick='Record_save('record_form_add_"+this.info_num+"')' src='/images/stock/btn_save1.gif'></p></form></div>";
return SUCCESS;}
请将代码那个‘单引号换成“引号!
如下:
= "<div id='Record_add_"+x+"'>" +
"<form name='Record_form_add_"+y+
"' method='POST' id='Record_form_add_"+z+
"' action='InvestorControl!addRecord'>" +
"<table><tbody><tr><td>通话记录</td><td><img src='/images/stock/icon_del.gif' align='absmiddle' hspace='3'>" +
"<a style=\"cursor:pointer;\" onclick=\"deleteinfo('Record','add','"+z+"')\">删除</a>"+
"</td></tr><tr><td colspan='2'><textarea rows='8' cols='60'></textarea></td></tr><tr></tr></tbody></table><p>"+
"<img style=\"cursor:pointer;\" onclick=\"Record_save('record_form_add_"+z+"')\" src='/images/stock/btn_save1.gif'></p></form></div>";
给你重新提供一个使用juery的ajax方法吧。 public void Record() throws IOException {
String result="这里组装你要的页面";
response.setHeader("Cache-Control", "no-cache");
response.setContentType("text/json;charset=UTF-8");
response.getWriter().write(result);
}
使用这种形式,你可以随心所欲的返回你要的数据,而不必担心格式,编码问题。
至于你之前的方法,可能是在解析"cursor:"这里的时候发生了错误,jquery把你要解析的result当作了json数据,所以就按照了json的格式把你返回的result解析到了页面上。