jsp中的javascript问题

时间:2014-05-29 07:22:11

标签: javascript jsp

我有一个小问题,我正在使用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;
    }
}

2 个答案:

答案 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>

......
.......
......