Comunidad de diseño web y desarrollo en internet online

modificar un texto tipo input

Citar            
MensajeEscrito el 10 Jul 2013 10:14 am
Buenos días,
Tengo un texto tipo input en el que el cliente debe introducir lo siguiente: "AN1A04AUGMDIB".
Ese campo tiene 3 partes. Primero "AN1A", después una fecha (que será dinámica) y por último "MDIB".
Mi problema es que debo darle la opción de poner dicha fecha con un sólo dígito (4AUG) y luego transformarla yo.
Hasta ahora he sido capaz de controlar si ha introducido el cero o no. Pero no soy capaz de poner yo ese cero si el cliente no lo ha hecho.
Pego el código para que veáis como lo he solucionado hasta donde sé.
Muchas gracias de antemano.

Código ActionScript :

comprueboFecha = function(){
   //con esta función compruebo si ha introducido dos dígitos para la fecha
   dosFirstDigitos = function(){
   var my_str:String = new String();
   my_str = fechaInput.text;
   var mySubstring:String = new String();   
   mySubstring = my_str.substr(5,1);
   trace(mySubstring);
   if(mySubstring == "0" or mySubstring == "1" or mySubstring == "2" or mySubstring == "3" or mySubstring == "4" or mySubstring == "5" or mySubstring == "6" or mySubstring == "7" or mySubstring == "8" or mySubstring == "9"){
      trace("no hace falta poner un cero en la fecha");
   }else{
      trace("pongamos un cero: " + mySubstring);
      mySubstring = "0"+mySubstring;
   }
   
}
dosFirstDigitos();
}

Por Onexete

76 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 10 Jul 2013 01:06 pm
No entiendo la regla de substitución, por ejemplo como 4 se convierte en 4AUG

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

chrome
Citar            
MensajeEscrito el 10 Jul 2013 03:18 pm
Perdón Jorge, es que no resulta fácil para mí explicarme tratándose de programación.
el cliente tiene que introducir la siguiente cadena de texto en el campo fechaInput.text: "AN1A04AUGMDIB" y pulsar intro
Tengo una función que comprueba que ese campo es correcto :
comprueboCampos = function(){
if((fechaInput.text == "AN1A"+fechaBase.text+"MDIB")){
trace("bien");
}
Al pulsar intro, paso dos funciones. La primera función: comprueboFecha(); para que me convierta la fecha en el formato que deseo, es decir, 2 dígitos "04". Y así poder hacer la comparación correcta al pasarle la segunda función: comprueboCampos();

El problema es que, con esta segunda función he conseguido saber si ha puesto dos dígitos o sólo uno para la fecha. Pero no consigo poner un cero en el caso de haber puesto sólo un dígito.

Y no sigo con más explicaciones que me estoy liando hasta yo!!!
gracias

Por Onexete

76 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 10 Jul 2013 07:40 pm
Tu función es una función anónima que declara otra dentro y la llama, considera hacer dos funciones indepentientes. Luego intenta primero enunciar una regla, sino iras tirando manotazos de ciego. Algo asi por ejemplo

El 5 y 6to caracter tienen que ser numeros, desde el 01 al 31
Si el 5to caracter no es numero, ver si el 6to lo es
Si ambos caracteres no son numeros error
si el 5 es un numero agregar un 0 en esa posicion
si el 6 es un numero?

En el ultimo caso se puso una letra de mas .... entonces tendr'ias que limitar la cantidad de caracteres para que eso no pasara

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

chrome
Citar            
MensajeEscrito el 10 Jul 2013 09:20 pm
Ando de metiche xD

Creo que 04AUG se refiere al 4 de agosto no?

Si es así, que el cliente ponga la fecha y tu agregas si es un número menor a 10 el 0 faltante (en caso de que el cliente no lo escriba)

Lo del mes no se como lo va a escribir el cliente.... puedes poner un combo con los valores necesarios

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

chrome
Citar            
MensajeEscrito el 11 Jul 2013 08:18 am
Muchas gracias Nacho,
Quiza no lo he hecho de la manera más ortodoxa, pero con la función comprueboFecha(); he conseguido saber si el cliente ha puesto o no la fecha como debe.
Quiza resumo más mi problema si digo que, necesito saber lo siguiente:
Cómo insertar un caracter (en este caso un cero) en una posición concreta de un inputtext.
Gracias de nuevo,,

Por Onexete

76 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 11 Jul 2013 09:36 am
Señores,
este es un buen día para mí.
Creo que es la primera vez que soy capaz de dar con la solución después de un par de días de desesperación.
No es que me haya convertido de golpe en el gurú de la programación. Más bien ha sido fruto de la casualidad.
Pero estoy igualmente contento.
El truco ha estado en usar esta línea de código: "fechaInput.replaceText(4, 5, "0");"
el código replaceText ha sido la clave.
Muchas gracias como siempre por vuestras aportaciones y por estar ahí una vez más.

Por Onexete

76 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 11 Jul 2013 05:45 pm
Una cosa... por qué no usaste una expresión regular??

Algo como:

Código :

^([A-Z0-9]{4})(\d{2}\[A-Z]{3})([A-Z0-9]{4})$

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

chrome
Citar            
MensajeEscrito el 12 Jul 2013 09:41 am
puff nasho, pues supongo que por falta de conocimientos!!!
Gracias por tu aportación

Por Onexete

76 de clabLevel



Genero:Masculino  

safari

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.