Problème javascript&html

Résolu/Fermé
piervi Messages postés 107 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 11 septembre 2023 - 24 mai 2007 à 13:49
piervi Messages postés 107 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 11 septembre 2023 - 24 mai 2007 à 15:07
Salut à tous,

J'ai fait un formulaire et j'ai un champ date qui se remplit à l'aide d'un calendrier

Dans l'input de ce champ date, j'aimerais faire un onChange (ou j'appelle un function js) mais vu que le champ est rempli par le biais d'une function javascript, le onChange ne s'applique pas...

Quelqu'un aurait une idée pour que tout ça fonctionne...

Merci d'avance.

C'est urgent parce que j'e dois rendre mon projet demain matin et c'est tout ce qui foire dans mon programme...

piervi
A voir également:

3 réponses

Rwick Messages postés 59 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 25 septembre 2007 9
24 mai 2007 à 13:51
"SHOW US THE CODE"
piervi Messages postés 107 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 11 septembre 2023 7
24 mai 2007 à 14:15
En fait, j'ai un champ de formulaire de réservation de gite en ligne
Le premierchamp date (datedeb) est généré par le biais d'un calendrier. le deuxiemen champ est un combo pour sélectionner une durée de séjour (lselectduree) et le dernier, est un champs date qui est en readOnly pour l'utilisateur et qui se génère par le biais de la fonction suivante :

var oneMinute = 60 * 1000
var oneHour = oneMinute * 60
var oneDay = oneHour * 24
var oneWeek = oneDay * 7

function fill_input ()
{

var ldatedeb_input = document.getElementById('ldatedeb');
var ldatefin_input = document.getElementById('ldatefin');
var lselectduree_select = document.getElementById('lselectduree');

var ldatedeb = ldatedeb_input.value;
var lselectduree = lselectduree_select.value;
var ldatefin = null;
//alert ('0');
if(lselectduree && ldatedeb)
{
tab_date = ldatedeb.split('/');
//alert ('1');
if(tab_date.length == 3)
{
var jour = parseInt(tab_date[0], 10);
var mois = parseInt(tab_date[1], 10)-1;
var an = parseInt(tab_date[2], 10);
an = ((an < 100)? 2000+an: an);

var date_obj = new Date(an, mois, jour);

//conversion de la date en ms
var dateInMs = date_obj.getTime()
//ajout du nombre de semaines
if(parseInt(lselectduree,10) != 0)
{
dateInMs += parseInt(lselectduree, 10) * oneDay;
//maj de date_obj
date_obj.setTime(dateInMs)

jour = date_obj.getDate();
mois = date_obj.getMonth() + 1;
an = date_obj.getFullYear();

ldatefin = (jour>9? '': '0') + jour + '/' + (mois>9? '': '0') + mois + '/' + an;

ldatefin_input.value = ldatefin;
}
}
}
}


--------------------------------------------------------------------------
<input type="text" id="ldatedeb" size="12" maxlength="10" class="resableutxt9" onClick="view_microcal(true,ldatedeb,calend,-1,0);" onBlur="view_microcal(false,ldatedeb,calend,-1,0);" onKeyUp="this.style.color=testTypeDate(this.value)?'black':'red'" onselectstart="return false;" onChange="fill_input();" readOnly>
<div id="calend" style="visibility:hidden;position:absolute;border:2px black solid;background:#ffffff;"></div>
</span>

champs datedeb qui affiche un calendar sur le onClick

<select id = "lselectduree" name="lselectduree" class="resableutxt9" onChange="fill_input();">

champs de sélection de la durée avec du code asp derrière... marche très bien


<input type="text" id="ldatefin" size="12" maxlength="10" class="resableutxt9" style="cursor:pointer;" onMouseDown="return false;" onselectstart="return false;" readOnly>


champs ldatefin remplit par le biais de la première fonction


Voila le onChange du premier input ne fonctionne pas...

Si tu veux tester, va sur

http://www.guiltour.com/resa_dev_140507/sources/resa/modele.asp?lg=fr&resid=0&wid=guiltour&siteback=javascript:window.close(

En fait, si tu sélectionne l'un et après l'autre ça marche mais ce que je n'arrive pas à faire, c'est que si la durée est déjà sélectionnée et que je change de date, ça n'actualise pas le champ ldatefin, il attend de nouveau qu'on clic sur la durée pour se lancer...

Si c'est trop mal expliqué, dis moi ce que tu comprends pas ^^

Merci bien de t'intéresser à mon problème

Piervi
piervi Messages postés 107 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 11 septembre 2023 7
24 mai 2007 à 15:07
Bon ben pour le nieme post ke j'ai mis, j'ai trouvé la solution au final ^^

Il suffit dans une function js de mettre :" input.onChange();"

Voilou ^^