el problema es que la segunda vez se esta comparando dos string en lugar de al menos uno de ellos integer. o sea, javascript utiliza un algoritmo diferente (operator overload o coercion) segun el tipo de valor de cada argumento. en la primera ocasion se compara un numero y un string. en este caso el string se converte a numero y luego se realiza la comparacion. cuando la evaluacion resulta
true, la variable global contiene el string.
sin embargo, para la segunda ocacion, y subsecuentes, se comparan dos string donde javascript utiliza el primer character de cada operando y los compara segun el charCode. de modo que en las cadenas '90' y '180', el 9 es mayor que el 1.
para solucionarlo, debes convertir al menos un operando a tipo integer antes de hacer la comparacion. o la version mucho mas corta, utiliza la funcion
Math.max.
Código javascript
:
Ver originalvar maximoInsumoDespachoPaciente = 0;
function agregarInsumoDespachoPaciente(){
maximoInsumoDespachoPaciente = Math.max(document.getElementById('txt_str_total_recetado').value,
maximoInsumoDespachoPaciente);
}
en esta version no tienes que preocuparte por el tipo de valor, pues Math.max convierte cada argumento a tipo numerico y devuelve como integer el argumento con valor mas alto.