Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/12/2010, 11:07
Dr0gNan
Invitado
 
Mensajes: n/a
Puntos:
Eventos en javascript no funcionan

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.