Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/11/2005, 17:15
yconoclasta
 
Fecha de Ingreso: febrero-2005
Mensajes: 135
Antigüedad: 21 años, 8 meses
Puntos: 0
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;
}