Buenas. Estoy creando una web en JSP.
En el resto de paginas me funcionan correctamente los eventos de javascript (onclick) pero en esta no entiendo porque no se procesan al redirigirlos a una funcion javascript.
Es decir, poniendo por ejemplo:
onchange="javascript:alert('Hola');" funciona correctamente.
En cambio si hago lo siguiente no funciona:
onchange="Saludar('Hola');"
Pongo el codigo, he pensado que igual algo de la pagina le esta fastidiando.
Código HTML:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link rel="stylesheet" type="text/css" href="../css/EstiloBase.css" />
<title>M&M Informática S.L. .:. Nuevo producto .:.</title>
<script src="../js/jquery.js" type="text/javascript"></script>
<script src="../js/jquery.validate.js" type="text/javascript"></script>
<script type="text/javascript"><!--
$().ready(function() {
$("#frmNuevoProducto").validate(
{
rules: {
txtNombre: {
required: true
}
},
messages: {
txtNombre: {
required: " El campo 'Nombre' es obligatorio."
}
}
});
});
// -->
</script>
</head>
<body>
<form id="frmNuevoProducto" name="frmNuevoProducto" method='post' action='../AccionesProductoServlet'>
<table>
<tr>
<td class=tabledataFormat>
<label for="lblPrecio">Precio:</label></td>
<td class=tabledataFormatValues>
<input name="txtPrecio" type="text" class="numbertext" onchange="ShowFinalPrice();" id="txtPrecio" size="50" value="0.00"></td>
</tr>
<tr>
<td class=tabledataFormat>
<label for="lblDescuento">Descuento (%):</label></td>
<td class=tabledataFormatValues>
<input name="txtDescuento" type="text" class="numbertext" onchange="ShowFinalPrice();" id="txtDescuento" size="50" value="0.00"></td>
</tr>
<tr>
<td class=tabledataFormat>
<label for="lblImpuesto">Impuesto (%):</label></td>
<td class=tabledataFormatValues>
<select name="cmbImpuesto" id="cmbImpuesto" class="numbertext" size="1" onchange="ShowFinalPrice();" style="width: 320px">
<option value="0">-- Ninguno --</option>
<option value="4">IVA 4%</option>
<option value="8">IVA 8%</option>
<option value="18">IVA 18%</option>
</select>
</td>
</tr>
<tr>
<td class=tabledataFormat>
<label for="lblPrecioFinal">Precio final:</label></td>
<td class=tabledataFormatValues>
<input name="txtPrecioFinal" type="text" readonly class="numbertext" id="txtPrecioFinal" size="50" value="0.00" style="border-width: 0px"></td>
</tr>
</table>
<script type="text/javascript" language="javascript">
function ShowFinalPrice()
{
alert('hola');
var valorPrecio = document.getElementById('txtPrecio').value;
var valorDescuento = document.getElementById('txtDescuento').value;
var valorImpuesto = document.getElementById('txtImpuesto').value;
float descuento = (valorPrecio * valorDescuento)/100 - valorPrecio;
float impuesto = (valorPrecio * valorImpuesto)/100 + valorPrecio;
float precioFinal = valorPrecio + descuento + impuesto;
alert(precioFinal);
document.getElementById('txtPrecioFinal').value = precioFinal;
}
</script>
</form>
</body>
</html>
Por mas pruebas que he hecho he comprobado que no llega al alert de la funcion javascript.
Gracias.