'document.getElementById(...)' à la valeur null ou n'est pas un objet
benboun
Messages postés3Date d'inscriptionsamedi 6 septembre 2008StatutMembreDernière intervention 6 septembre 2008
-
6 sept. 2008 à 16:30
nickadele
Messages postés1251Date d'inscriptionmercredi 7 août 2002StatutModérateurDernière intervention10 avril 2013
-
9 sept. 2008 à 20:36
Bonjours,
Je suis un débutant en Javascript et j'ai rencontrer un problème qui m'a qui me stoppe depuis maintenant plus de 3 jours. En cherchant sur le forum j'ai peut être touver un problème qui lui ressemble un peu, mais j'arrive pas à adapter la réponse à mon programme.
voici le bout de code qui me pose problème:
function AddRowGrippe(){
var f = parseInt((l1 - 1), 10);
var newRow = document.getElementById('table').insertRow(-1); // 'table' est l'ID de la balise <Table
h1 = parseInt((l1 + 1), 10);
function CALGRIPPE(VCG,val) {
var VC1 = document.all(VCG).value;
if (VC1 !== "") {
for ( T = val; T <= l1; T++) {
var f = parseInt((T-val+1), 10);
addition(0,0,f,VCG,'GRIPPE'+T+'date');
}}}
function addition(jours,mois,annee,VCG,elem) {
var i = 0;
var datenaissance = document.all(VCG).value;
var day = parseInt(datenaissance.substring(0,2), 10);
var month = parseInt(datenaissance.substring(3,5), 10);
var year = parseInt(datenaissance.substring(6,10), 10);
if (year>1969 || year<3000) {
var dnaissance = new Date();
dnaissance.setTime(0);
dnaissance.setDate(day);
dnaissance.setMonth(month - 1);
dnaissance.setFullYear(year);
var datejour = document.all('date_jjmmaa').value;
var day1 = parseInt(datejour.substring(0,2), 10);
var month1 = parseInt(datejour.substring(3,5), 10);
var year2 = parseInt(datejour.substring(6,8), 10);
var year1 = 2000 + year2;
var djour = new Date();
djour.setTime(0);
djour.setDate(day1);
djour.setMonth(month1 - 1);
djour.setFullYear(year1);
var j = parseInt((day), 10);
if (j<10) {
j="0"+j;
}
var m = parseInt((month), 10) + parseInt((mois), 10);
if (m>12) {
m = parseInt((m), 10) - 12;
i = 1;
if (m>12) {
m = parseInt((m), 10) - 12;
i=2;
}
}
if (m<10) {
m="0"+m;
}
var a = parseInt((year), 10) + parseInt((annee), 10) + parseInt((i), 10);
var date = j+"/"+m+"/"+a;
var date1 = new Date();
date1.setTime(0);
date1.setDate(j);
date1.setMonth(m - 1);
date1.setFullYear(a);
var m2 = new Date();
m2.setTime(0);
m2.setDate(jours + 1);
m2.setMonth(0);
m2.setFullYear(1970);
m3 = parseInt((m2.getTime()), 10)+ parseInt((date1.getTime()), 10);
var date2 = new Date();
date2.setTime(m3);
var j2 = date2.getDate();
if (j2<10) {
j2="0"+j2;
}
var m2 = date2.getMonth() + 1;
if (m2<10) {
m2="0"+m2;
}
var a2 = date2.getFullYear();
var date31 = j2+"/"+m2+"/"+a2;
var date32 = j2+"/"+m2+"/"+a2+"*";
var mj = djour.getTime();
if (m3>mj) {
document.getElementById(elem).value = date31; //ceci est la ligne affiché par le débogueur
} else {
document.getElementById(elem).value = date32;
}
}
}
J'ai mis en rouge ce que je pense qui me pose problème. Mais d'après ce que j'ai compris c'est que dans
document.getElementById(elem).value = date31 le paramètre elem fait référence à un objet invalide quand la fonction CALGRIPPE(VCG,val) est appelé parce que le INPUT text ne se trouve pas dans mais dans <Head>.
Voila j'épère que quelqu'un reussira à m'éclairer là dessus.
A voir également:
'document.getElementById(...)' à la valeur null ou n'est pas un objet
benboun
Messages postés3Date d'inscriptionsamedi 6 septembre 2008StatutMembreDernière intervention 6 septembre 2008 6 sept. 2008 à 19:57
Oui je sais que ce n'est pas dans sa place habituelle, mais je veux que quand je clique sur un bouton il m'ajoute des lignes à mon tableau qui contiennent des INPUT et après je dois les remplir.
nickadele
Messages postés1251Date d'inscriptionmercredi 7 août 2002StatutModérateurDernière intervention10 avril 2013 9 sept. 2008 à 20:36
Bonjour,
1. qu'est ce qui est appelé quand et comment ?
2. document.getElementById('table'). >>
Evites d'utiliser des identifiants qui correspondent à du html ou autre, préfère ceci par exemple : document.getElementById('matable').
3. Utilises un inspecteur de DOM pour t'assurer que tes éléments soient correctements créer et qu'il n'y a pas d'erreur à la base.
Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
Mon Blog