日期:2014-05-18  浏览次数:20703 次

请各位高手帮帮忙啊,帮我看一下
我做了个点击的弹出窗口,点击jsp1弹出jsp2,在jsp2页面选择一个值后点击传值回jsp1,方法如下:
//js
<script   language=javascript>
function   sendto(a_bm){
var   a_treedata=a_bm;
window.returnValue   =   a_treedata;
window.close();
}
</script>
//jsp2
<%
String   a_data= "111111 ";
out.print( " <li   class=Child> <a   href=#   onclick= 'sendto( "+X_hydm[n]+ ") '> "+a_data+ " </a> ");
out.print( " </li> ");
%>

结果弹出的jsp2页面老是报错,我把
onclick= 'sendto( "+X_hydm[n]+ ") '> 中的引号加了不同位置都还报错。如果直接写进去就可以执行,比如onclick= 'sendto( '111111 ') '就可以执行,好奇怪,请哪位高手帮我看一下,先谢谢了!

------解决方案--------------------
这个当然不行了。
X_hydm[n]是jsp变量么?那么就用jsp的tag <%= %> 来传值。

------解决方案--------------------
我觉得你应当写成
out.print( " <li class=Child> <a href=# onclick=\ 'sendto(\ "+X_hydm[n]+\ ")\ '> \ "+a_data+\ " </a> ");
也就是说要加入\进行转义,或者使用更为清晰的代码如下:
<%
String a_data= "111111 ";
%>
<li class=Child> <a href=# onclick= 'sendto( <%=X_hydm[n]%> ) '> <%=a_data%> </a>
</li>