Javascript错误:未定义返回

时间:2012-06-29 17:08:36

标签: javascript jsp

大家好,我在JSP中遇到了一个问题,我想调用一个javascript函数:

<c:forEach var='item' items='${bookLogs}' varStatus="status">
...

<tr >
    <td colspan="9"><a href="javascript:expandOrCollapse(${sectionNumber}, ${item.type.name});">
</tr>

...
</c:forEach>  

目前我的firebug给了我一个错误: 返回没有定义。的javascript:expandOrCollapse(1,%20Returned);()

如何仅传入item.type.name ???

的文本值

3 个答案:

答案 0 :(得分:1)

显然,${item.type.name}是一个字符串,因此需要正确转义和引用。例如,如果${item.type.name}是字符串returned "value" & more,则HTML输出应如下所示:

<a href="javascript:expandOrCollapse(1, &quot;returned \&quot;value\&quot; &amp; more&quot;);">

答案 1 :(得分:1)

您需要在字符串周围加上引号,否则它将被视为javascript变量名称:

<a href="javascript:expandOrCollapse(${sectionNumber}, '${item.type.name}');">
//                                                     ^     quotes      ^

如果它是一个字符串,你还需要引用sectionNumber。如果它是一个数字,你就不会。

答案 2 :(得分:0)

我想出的解决方案是jbabey和Salman A的答案。我添加了像jbabey建议的引用。但它必须像Salman A所说的那样被转义为HTML,所以我在参数之前添加了f:escapeHtml函数并且有效。