Como hago un DateField en Web?

Estoy haciendo una tratando de Darle formaato de fecha a un Input Text.
Mi idea de un campo fecha seria: una fuoncion que detecte la posision del cursor y me deje remplazar todos los valoes del text, menos los "/", de esa manera tengo un campo de fecha!
Para eso necesito saber si hay alguna forma de detectar la posicion del cursor dentro del text.

7 respuestas

Respuesta
1
Lo que me pides es un poco raro y creo que no se puede hacer.
Lo mas adecuado suele ser que pongas tres input text (uno para el dia, otro para el mes y otro para el año separados por un "/" y con esos tres valores construyas la fecha. Es lo mas normal y sencillo.
Por ejemplo, asi:
<select size="1" name="dia">
<option selected>DIA</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select> /
<select size="1" name="mes">
<option selected>MES</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select> /
<input name="ano" size="4" maxlength="4" >
Respuesta
1
Aquí te envío una rutina que te valida la fecha del tipo:
"15-02-2003"
function chequear_texto(texto){var tmpstr = '';
var largo = 0;
var cond = 0;
largo = texto.length;
for (i=0;i<largo;i++){
if(texto.charAt(i)== "."){
if(cond==1){return false}
if(cond==0){cond=1}}
if(texto.charAt(i)!= '0' && texto.charAt(i)!= '1' && texto.charAt(i)!= '2' && texto.charAt(i)!= '3' && texto.charAt(i)!= '4' && texto.charAt(i)!= '5' && texto.charAt(i)!= '6' &&
texto.charAt(i)!= '7' && texto.charAt(i)!= '8' && texto.charAt(i)!= '9' && texto.charAt(i)!= '.' ){return false}}return true}
function valFecha(fech){
var largo = fech.length;
if(largo!=10){return true;}
meses = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var anioS = fech.substring(6,10);
if(!chequear_texto(anioS)){return true;}
var anio = new Number(anioS);
var mesS = fech.substring(3,5);
if(!chequear_texto(mesS)){return true;}
var mes = new Number(mesS);
if(mes>12){return true;}
var dias_mes = meses[mes-1];
var diaS = fech.substring(0,2);
if(!chequear_texto(diaS)){return true;}
var dia = new Number(diaS);
if(mes == 2){
var valor = parseInt(anio/4);
var valor2 = anio/4;
if (valor!=valor2){
dias_mes = 28;
}else{dias_mes = 29;}}
if(dia>dias_mes){return true;}
return false;}
Respuesta
1
en asp NO, pero en asp.net SI.
Ahora mi consejo eS:
En lugar de una caja de texto pon tres separadas por "/"
XD
O como lo suelo hacer yo
tres combos separados por "/"
Es más funcional y sencillo de programar.
Espero que te haya servido de algo.
Recibe un saludo cordial desde el otro lado del cable.
DidE
Respuesta
1
Los campos inputs no tiene un evento que te permitan detectar como va escribiendo el usuario en el campo de texto. Los eventos que tienen por lo general se lanzan cuando hay cambios de focos y cosas así.
Tal vez podrías manejar un evento que corra cada determinado tiempo para hacer las correcciones que pides sobre el campo pero creo que es complicarse mucho la vida.
Yo creo que es muchísimo más fácil si los separas en tres campos de texto o con combinaciones de combos select para el mes y año.
Respuesta
1
Te sugiero visites el foro de Javascript para que recibas más orientación, de hecho se puede usando un javascript, pero en este instante no lo tengo a la mano.
Éxitos! :)
Respuesta
1
Hay una forma un poco rudimentaria, es decir puedes utilizar el evento Onchange, para saber que es lo que se esta escribiendo, dentro de ese evento puedes preguntar por la longitud del "texto" que contiene el campo de tal manera que sepas si por ejemplo el campo inicialmente tiene la forma: __/__/____, pues preguntando por el tamaño del campo se sabe si esta metiendo día mes o año.
Respuesta
Si estas queriendo hacer esto con HTML desde ya te digo que es imposible me parece.
Ahora para hacerlo con PHP o ASP es bastante fácil.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas