Rechercher : dans
Par :

Controle par javascript

Dernière réponse le 10 sep 2004 à 13:51:08 Manu, le 10 sep 2004 à 13:21:24 
 Signaler ce message aux modérateurs

Bonjour à tous les boss du javascript
Pas facile à manipuler ce langague !
J’essaye d’instaurer un contrôle lors de la saisie d’une date par l’utilisateur de mon site en ASP. Il faut que la date qu’il saisisse soit comprise entre deux dates stockées dans la page dans des variables vbscript.
Au niveau de ma page la partie concernée donne ceci :

<td>Date de la pièce : <input type="text" name="Date" size="12" tabindex="1" onblur="controledate('<%= datDebut%>', '<%= datFin%>', this.value);" > </td>

Avec datDebut et datFin sont stockés dans une base de donnée, puis récupérés dans une variable Session lors de la connexion au site et qui sont récupéré dans une variable locale au début de cette page. La récupération se fait bien, j’ai fait des test d’affichage et les valeurs sont bonnes.
datDebut et datFin sont de type String (j’ai essayé au format date, c’était pas mieux)

j’envois donc des données du type jj/mm/aaaa

La fonction controledate() est la suivante :

<SCRIPT LANGUAGE="javascript">
function controledate(debut, fin, reelle){
// On récupère les variables
var ddebut = debut;
var dfin = fin;
var dnow = reelle;

// Pour chacune des variables, on décompose en jj mm aaaa et on en fait une date
// on transforme cette date en nombre grace à la methode getTime afin de pouvoir (mieux?) la manipuler
var jnow = dnow.substring(0, 2);
var mnow = dnow.substring(3, 5);
var anow = dnow.substring(6,10);
var datnow = new Date(anow, mnow, jnow);
var nbrnow = datnow.getTime();

var jfin = dfin.substring(0, 2);
var mfin= dfin.substring(3, 5);
var afin= dfin.substring(6,10);
var datfin = new Date(afin, mfin, jfin);
var nbrfin = datfin.getTime();

var jdebut = ddebut.substring(0, 2);
var mdebut= ddebut.substring(3, 5);
var adebut= ddebut.substring(6,10);
var datdebut = new Date(adebut, mdebut, jdebut);
var nbrdebut = datdebut.getTime();


/*
alert(ddebut);
alert(dnow);
alert(datdebut);
alert(datnow);
alert(nbrdebut);
alert(nbrnow);
*/

if ( nbrdebut >= nbrnow || nbrfin <= nbrnow ) {
alert(La date doit être comprise dans l/'exercice en cours);
return false;}
}
</SCRIPT>

Lorsque je cache le if et que je laisse les alert apparant, tout va bien : j’ai des résultat qui me semble corrects.
Lorsque je fais comme c’est présenté ici, il ne se passe rien et j’ai un message d’erreur me disant :
Ligne : 58 (correspondant à la ligne var afin = dfin.substring(6,10);)
Car : 1
Erreur : objet attendu

Si une personne avait une solution à mon problème, je lui en serais très reconnaissant…
Ps : et que pensez vous du code, je trouve ça un peu lourd (devoir utiliser du substring, en faire une date, le mettre en nombre…) pour finalement faire quelque chose de pas si compliqué, est ce normal ?
Merci d’avance,
Manu

Meilleures réponses pour « controle par javascript » dans :
Javascript - Librairies d'effets pour vos images VoirAu gré de vos explorations du web, vous avez vu de superbes effets de présentation des images. Et ça vous plairaît bien de pouvoir proposer les mêmes à vos visiteurs. Voici quelques solutions en Javascript couplées à des CSS. Elles sont plus...
Javascript - Modifier la hauteur (height) d'un élément HTML VoirPour modifier la hauteur d'un élément HTML en javascript, il suffit d'utiliser sa propriété de style "height". Pour cela vous pouvez y faire référence de la manière suivante : Si vous souhaitez connaître la hauteur (height) d'un bloc HTML, il...
Javascript - Manipulation des contrôles clavier VoirManipulation des contrôles clavier Cette astuce a pour but de vous faire découvrir la (ou du moins une) manière de contrôler les évènements clavier en javascript. Cela vous permettra de contrôler/attribuer les/des comportements particuliers à...
Télécharger Face Control Plug-in VoirQuand vous voulez retoucher une image, la partie faciale est la plus délicate. Si cette partie est ratée, quoique vous fassiez sur le reste du corps, le résultat ne sera pas très probant. Face Control n'est pas un outil de retouche photo proprement...
Télécharger Notebook Hardware Control VoirNotebook Hardware Control est un outil de contrôle des composants de votre Notenook. - Il contrôle la gestion d'alimentation de votre système. - Il personnalise Notebook (open source). - Il prolonge la durée de vie de votre batterie. - Il...
Javascript - Les événements VoirQu'appelle-t-on un événement? Les événements sont des actions de l'utilisateur, qui vont pouvoir donner lieu à une interactivité. L'événement par excellence est le clic de souris, car c'est le seul que le HTML gère. Grâce au Javascript il est...
Javascript - Introduction au langage Javascript VoirQu'est-ce que le Javascript? Le Javascript est un langage de script incorporé dans un document HTML. Historiquement il s'agit même du premier langage de script pour le Web. Ce langage est un langage de programmation qui permet d'apporter des...
Javascript - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. En Javascript, les noms de variables peuvent être aussi long que l'on désire,...

1

hi, le 10 sep 2004 à 13:31:11

Alert("La date doit être comprise dans l'exercice en cours");
ça n'irait pas mieux ?

Répondre à hi

2

Manu, le 10 sep 2004 à 13:35:59

Effectivement, ça m'avait echappé, mais ça ne marche malheureusement toujours pas...

Répondre à Manu

3

 Manu, le 10 sep 2004 à 13:51:08

Excuse, ça marche! j'ai rechargé plusieurs fois et c'est bon...
Merci beaucoup

Répondre à Manu