Ver Mensaje Individual
  #7 (permalink)  
Antiguo 16/10/2003, 11:11
Avatar de fjmasero
fjmasero
 
Fecha de Ingreso: diciembre-2002
Mensajes: 488
Antigüedad: 21 años, 5 meses
Puntos: 1
a todos y gracias por vuestra ayuda.

He probado los códigos q me habéis puesto, y funcionan, unos mejor q otros.

Pero no hacen exactamente lo que quiero, es decir, q el usr solo pueda introducir euros, con el formato

parte entera , parte decimal con 2 digitos máximo.

Os pongo como lo he hecho:

Código:
function esEuros(campo)
{
 var valor = campo.value;
 //comprobacion si PVP tiene formato euros (se podria hacer en funcion aparte, pero en esta funcionalidad no es preciso)
 if (EsNumero(campo)) //si es numero, en cuyo caso solo parte entera (si hbuiera al menos una ',', seria false)
 {
  if (valor != "0") //si PVP no es 0, se hace submit
   return true;
  else //si PVP es 0, error
   return false;
 }
 else //si hay algun caracter no numero
 {
  precio = valor.split(","); //se construye un array con las subcadenas del campo PVP separadas por ','
  if (precio.length == 2) //si dicho array tiene 2 posiciones (parte entera y parte decimal), es que el PVP tiene parte_entera,parte_decimal
  {
   var regE=new RegExp("^[\\d]*$"); //expresion regular que comprueba si solo hay digitos
   if(regE.test(precio[0]) && regE.test(precio[1])) //comprobacion de parte entera y decimal del valor del PVP introducido (si son numeros unicamente)
   {
    if (precio[1].length <= 2) //si la parte decimal tiene solo 2 decimales, se hace submit
     return true;
    else //si parte decimal tiene + de dos decimales
     return false;
   }
   else //si las supuestas parte entera y/o la parte decimal tiene algun caracter no numerico
    return false;
   }
   else //si el array no tiene dos posiciones, es que algo "raro" hay en el PVP
    return false;
 }
}

[esNumero(n) devuelve si el n pasado es un numero]
Pelin enrevesado, pero me funciona como os he dicho, salvo q vosotros, q sabéis + q yo, me digáis los posibles problemas, q estoy seguro habrá.

__________________
No es sabio el que sabe sino el que no sabe y quiere aprender