11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,


Mes connaissances en javascript sont basiques.
J'essaie, j'essaie et j'essaie plein de trucs !
J'ai un souci évident avec mes dates ou avec mon onchange !
Pourriez-vous m'aider à "dépatouiller" le code ?

Si j'encode "1/4", je souhaiterais obtenir "01/04/2012" !
Actuellement, avec ce code, j'ai toujours "1/4" dans l'input "datefabricationdebut" !
Si j'encode "1", c'est "01/04/2012" que je souhaiterais...
Si j'encode "1/4/12", c'est "01/04/2012" que je souhaiterais...

D'avance, je vous en remercie.

Ces fonctions sont :

function checkdate (m, d, y) {
    return m > 0 && m < 13 && y > 0 && y < 32768 && d > 0 && d <= (new Date(y, m, 0)).getDate();
}

function validationdate(datum) {
	segment = datum.split('/');
	if (segment[0].length == 1) {
		segment[0]= "0"+segment[0];	
	}
	if (segment[1].length == 0) {
		segment[1]= getMonth();	
	}
	if (segment[1].length == 1) {
		segment[1]= "0"+segment[1];	
	}
	if (segment[2].length == 0) {
		segment[2]= getFullYear();	
	}
	if (segment[2].length == 2) {
		segment[2]= "20"+segment[2];	
	}

	datum="ERR";
	if ((segment[0].length == 2) && (segment[1].length == 2) && (segment[2].length == 4)) {
		if (checkdate(segment[1],segment[0],segment[2])) {
			datum = segment[0]+"/"+segment[1]+"/"+segment[2];
		}
	}
	return datum;
}


Voici le bout de code html, utilisant ces fonctions :

      <tr>
      <td height="25">Date de début de réalisation</td>
      <td><input name="datefabricationdebut" type="text" id="datefabricationdebut" height="17" size="8" value="<?php echo $_POST['datefabricationdebut']; ?>" class="zone2" onchange="validationdate(this.value)"></td>
      </tr>

Modifié par jytest (12 Apr 2012 - 10:04)