Gracias, pues es un poco largo, por eso no quería pegarlo, pero si eso facilita.
Código PHP:
function ValidaNumero(Campo, pOpcion)
{
var checkOK = "0123456789.,";
var checkStr = QuitaFormato(Campo.value);
var allValid = true;
var decPoints = 0;
var allNum = "";
for (i = 0; i < checkStr.length; i++) {
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length) {
allValid = false;
break;
}
if (ch == ".") {
allNum += ".";
decPoints++;
}
else if (ch != ",")
allNum += ch;
}
if (!allValid) {
alert("Escriba sólo dígitos en este campo.");
Campo.value ="0.00"
Campo.focus();
Campo.select();
return (false);
}
if (decPoints > 1) {
alert("Escriba un número válido en este campo.");
Campo.value ="0.00"
Campo.focus();
Campo.select();
return (false);
}
if (QuitaFormato(Campo.value) == "")
Campo.value = "0.00";
if (QuitaFormato(Campo.value) > 9999999999.99)
{
alert("El importe no puede ser mayor a 9,999,999,999.99");
Campo.value ="0.00"
Campo.focus();
Campo.select();
return (false);
}
if (pOpcion && QuitaFormato(Campo.value) != "")
Campo.value = FormateaNumero(Campo.value);
return (true);
}
function FormateaNumero(Numero)
{
if (Numero == "0")
{
Numero = "0.00"
}
var numStr = QuitaFormato(Numero);
var pDecimal = numStr.indexOf(".");
var nDecimal = SubCadena(numStr, pDecimal, 3);
var pNegativo = numStr.indexOf("-");
if (pNegativo > -1)
var nEntero = SubCadena(numStr, 1, pDecimal - 1 );
else
var nEntero = SubCadena(numStr, 0, pDecimal );
var lEntero = nEntero.length;
var vCEntero = lEntero;
var nNumero = ""
while (true) {
if (vCEntero - 3 > 0) {
nNumero = "," + SubCadena(nEntero, vCEntero - 3, 3) + nNumero
vCEntero = vCEntero - 3;
}
else {
nNumero = SubCadena(nEntero, 0, vCEntero) + nNumero;
break;
}
}
nNumero = nNumero + nDecimal;
if (pNegativo > -1)
nNumero = "-" + nNumero;
return (nNumero);
}
function SubCadena(pCadena, pInicio, pCuantos)
{
var vSubcadena
var vCicCadena
vSubcadena = "";
for (vCicCadena = 0; vCicCadena < pCuantos; vCicCadena++) {
vSubcadena = vSubcadena + pCadena.charAt(pInicio + vCicCadena);
}
return vSubcadena;
}
function QuitaFormato(NumFormateado)
{
var numAux = "";
var numSCero = "";
var vCicNumero;
for (vCicNumero=0; vCicNumero < NumFormateado.length; vCicNumero++)
if (NumFormateado.charAt(vCicNumero) != "0") {
numSCero = SubCadena(NumFormateado, vCicNumero, NumFormateado.length);
break;
}
for (vCicNumero=0; vCicNumero < numSCero.length; vCicNumero++)
if (numSCero.charAt(vCicNumero) != ",")
numAux = numAux + numSCero.charAt(vCicNumero);
if (numAux.indexOf(".") == -1)
numAux = numAux + ".00";
var vPos = numAux.indexOf(".");
var vLon = numAux.length;
var varCero = "00";
if (vLon - vPos < 3)
numAux = numAux + SubCadena(varCero, vLon - vPos - 1, 2);
if (numAux.charAt(0) == ".") {
numAux = "0" + numAux;
}
return (numAux);
}
function EsCero(Campo,Mensaje)
{
if (parseFloat(QuitaFormato(Campo.value)) <= 0 )
{
alert (Mensaje);
Campo.focus();
Campo.select();
return (false);
}
else
{
return (true);
}
}
function SeleccionaTexto(Campo)
{
//Si el valor del campo es diferente de ""
if (Campo.value != "")
{
Campo.select();
}
}
function ValidaCampos()
{
//Obtiene la clave del tipo de crédito que ha sido seleccionado
TipoCredito = document.form1.ddlDestinoCredito.options[document.form1.ddlDestinoCredito.selectedIndex].value;
if (TipoCredito == "0")
{
alert ("Debe seleccionar el Destino de Crédito");
document.form1.ddlDestinoCredito.focus();
return false;
}
//Obtiene la clave de la plaza que ha sido seleccionado
Plaza = document.form1.ddlCiudad.options[document.form1.ddlCiudad.selectedIndex].value;
if (Plaza == "(Seleccione una Ciudad)")
{
alert ("0");
document.form1.ddlCiudad.focus();
return false;
}
//Obtiene la clave del tipo de simulador seleccionado
TipoSimulador = document.form1.ddlCalculadoPor.options[document.form1.ddlCalculadoPor.selectedIndex].value;
if (TipoSimulador == "0")
{
alert ("Debe seleccionar la opción por la cual desea hacer la simulación");
document.form1.ddlCalculadoPor.focus();
return false;
}
//Verifica que el importe no este en ceros
if (TipoSimulador == "Comprar Casa")
mensaje = "¿Cuál es el Valor del Bien?";
if (TipoSimulador == "Construir Casa")
mensaje = "¿Cuáles son los Ingresos Mensuales?";
if (TipoSimulador == "Remodelar Casa o Departamento")
mensaje = "¿Cuál es el Importe Solicitado?";
if (EsCero(document.form1.txtMonto,mensaje)== false)
return false;
//Manda llamar el resultado
parent.frames["fraResultado"].location.href="resultado.aspx?TipoCredito=" + TipoCredito + "&TipoSimulador=" + TipoSimulador + "&Importe=" + document.form1.txtImporte.value + "&Plaza=" + Plaza;
return true;
}