我有一个小问题,我正在使用foreach填充jsp中的表,这是代码:
<c:forEach items="${empresaList}" var="empresa" >
<tr>
<td>${empresa.emp_rut}</td>
<td>${empresa.com_id}</td>
<td>${empresa.emp_nombre}</td>
<td>${empresa.emp_direccion}</td>
<td>${empresa.emp_telefono}</td>
<td>${empresa.emp_celular}</td>
<td>${empresa.emp_descripcion}</td>
<td>${empresa.emp_email}</td>
<td>${empresa.emp_web}</td>
<td><input type='button' id=eliminar
onclick='confirmar(${empresa.emp_rut})' value='Eliminar'></td>
</tr>
</c:forEach>
在onclick中我输入了一个参数,该参数为javascript函数提供了删除行的值,但首先要求确认。问题是当我运行页面时,该功能不会影响所有行。如果我删除了参数
function confirmar()
并将onlick更改为:
onclick='confirmar()'
,它工作(显然不会删除控制器中的行但显示消息)
我的问题是为什么?第一个javascript代码非常简单。
function confirmar(id)
{
var respuesta = confirm('¿Está seguro que desea eliminar '+id+'?');
if(respuesta)
{
location.href='Eliminar?id='+id;
}
}
答案 0 :(得分:0)
如果您不知道JavaScript不起作用,请始终查看JavaScript 。您只关注JSP。
最有可能的是,${empresa.emp_rut}
包含foo
(它提供了一个名为foo
的未定义变量)或foo bar
,这只是一个语法错误。
您需要引用JavaScript字符串文字(并转义字符串中的特殊字符)。
答案 1 :(得分:0)
${empresa.emp_rut}
是字符串还是数字?如果它是一个字符串值,那么在将值传递给javascript函数时必须引用它。所以你的代码应该是:
......
........
........
<!-- not that I have added double quotes in passing parameter to Javascript function calling -->
<td><input type='button' id=eliminar onclick='confirmar("${empresa.emp_rut}")' value='Eliminar'></td>
......
.......
......