traiter apres innerHTML

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : traiter apres innerHTML

par Cyrano » 23 déc. 2005, 01:20

<input type="checkbox" id="radio'+node[i].getAttribute('name')+'" value="'+node[i].getAttribute('name')+'" checked="checked" onclick="Apermit('+node[i].getAttribute('name')+');"/>
je transmet a Apermit l'id qui me permetera de mettre ma base a jour
Tu ne peux pas faire une concaténation JavaScript directement dans du HTML, ça ne sera pas interprété correctement : tu dois d'abord faire ta concaténation de chaine dans un script JavaScript et l'envoyer ensuite en valeur dans l'attribut de ta balise via le DOM.

par jeff » 22 déc. 2005, 23:14

je crois que j'ai reussi

par jeff » 22 déc. 2005, 22:55

desole de vous embetez avec ce probleme mais je craque
<input type="checkbox" id="radio'+node[i].getAttribute('name')+'" value="'+node[i].getAttribute('name')+'" checked="checked" onclick="Apermit('+node[i].getAttribute('name')+');"/>
je transmet a Apermit l'id qui me permetera de mettre ma base a jour

et je voudrai avec ma fonction Apermit
savoir si ma case est coché (car y acceder je n'y arrive pas) ](*,) ](*,)

je essaye de passer directement a Apermit l'id de la checkbox mais il me dit que c'est un objetHTML :?

par jeff » 22 déc. 2005, 22:18

ca fonctionne :D
j'ai plus qu'a trouver comment je manipule mes checkbox et c'est bon
le truc en faite c'est que j'avais peur de ne pas pouvoir acceder a mon formulaire

merci pour la doc je l'ai chercher toute l'apres midi sur le site msdn :pouce:

par Cyrano » 22 déc. 2005, 22:11

Bon, je viens de tester un truc, j'étais à coté de mes pompes :
Essaye de cette manière:
function montitre()
{
    alert(document.getElementById('monid').firstChild.nodeValue);
}
Explications ici

par jeff » 22 déc. 2005, 22:02

qu'entends tu par avant
je ne comprend pas tres bien

voici comment mon script fonctionne
je click sur un nom d'utilisateur et via ajax cela me charge les actions qui lui sont autorisées dans un formulaire(en titre on la balise h2 et pour autoriser ou non on a des checkbox)
sur chaque checkbox j'ai un evenement onclick qui fait a appel a une fonction qui devait recupere l'id de la checkbox modifier(ceci fonctionne) et ensuite on devrai pouvoir modifier la couleur de la ligne et recupere l'etat de la checkbox

voila

par Cyrano » 22 déc. 2005, 21:56

Je parie à 10 contre 1 que ton javascript est avant ton titre <h2> donc au chargement, l'id n'est pas encore défini...

par jeff » 22 déc. 2005, 21:51

j'ai fait un petit texte
dans le html que je genere et que j'insere avec innerHTML, j'ai

Code : Tout sélectionner

<h2 id="monid">hgg</h2>
et dans une fonction j'essaye d'en afficher le contenu

Code : Tout sélectionner

alert(document.getElementById('monid').value);
il me retourne Undefined pouvez vous faire le teste
et me confirmer que ca marcher ou que cela ne marche pas
merci

par Cyrano » 22 déc. 2005, 21:23

Si tu as plusieurs éléments avec le même nom du genre ma_case[], alors au lieu de elements['ma_case'], il faudra utiliser getElementsByName('ma_case')

On peut avoir plusieurs attributs id dans un formulaire, mais chacun doit avoir une valeur différente. DOnc dans le cas de valeurs redondantes. Voir ICI

par jeff » 22 déc. 2005, 21:05

j'ai essayer ton code mais il ne semble pas fonctionner alert ne me renvoi rien

Code : Tout sélectionner

for(var i in document.forms['frm1'].elements['check']) { if(document.forms['frm1'].elements['check'][i].checked) { var ann_lgt_ch_incl = document.forms['frm1'].elements['check'][i].value; alert(ann_lgt_ch_incl); break; } }
cependant tes expliction me laise perplexe
ann_lgt_ch_incl est la valeur de l'attribut id
tu veut dire name car tu peut pas avoir plusieur id :?:
et element fonctionne avec name, non :?:

par jeff » 22 déc. 2005, 20:56

le problemme du moins je crois c'est que je n'ai pas acces au html generer

par exemple si je fait une

Code : Tout sélectionner

document.getElementsByTagName('check').length
il me renvoi 0 hors j'ai 5 checkbox :-k

j'essaye ta solution et je reviens

par Cyrano » 22 déc. 2005, 20:51

Ben voilà ce que je fais pour le vérifier, à toi d'adapter pour tes besoins. Un détail cependant, j'utilise systématiquement des attributs id dans les éléments de mon formulaire et dans la balise <form> également
for(var i in document.forms['publier_ann'].elements['ann_lgt_ch_incl'])
{
    if(document.forms['publier_ann'].elements['ann_lgt_ch_incl'][i].checked)
    {
        var ann_lgt_ch_incl = document.forms['publier_ann'].elements['ann_lgt_ch_incl'][i].value;
        break;
    }
}
Où publier_ann est la valeur de l'attribut id de la balise <form> et ann_lgt_ch_incl est la valeur de l'attribut id de ma balise input de type checkbox.

Après, il te reste à faire la modification du style de ta case à cocher avec quelque chose du genre:
document.forms['publier_ann'].elements['ann_lgt_ch_incl'][i].style.backgroundColor='#f99';
Attention, ce système est sensible à la casse.

par jeff » 22 déc. 2005, 20:42

je voudrai recuperer mes checkbox et modifier le css

je voudrai acceder a ce code
	buffer+='<tr id="ligne'+node[i].getAttribute('name')+'" style="background-color:';
			if(node[i].getAttribute('auth')=="1"){
				buffer+='green">';
			}else{
				buffer+='red">';
			}
			buffer+='<td>'+node[i].getAttribute('module')+'</td>';
			buffer+='<td>'+node[i].getAttribute('action')+'</td>';
			var id=new Array();
			//id[i]=alert(node[i].getAttribute('name'));
			if(node[i].getAttribute('auth')==1){
				buffer+='<td><input type="checkbox" name="check" value="'+node[i].getAttribute('name')+'" checked="checked" onclick="Apermit('+node[i].getAttribute('name')+');"/></td>';
			}else{
				buffer+='<td><input type="checkbox" name="check" value="'+node[i].getAttribute('name')+'" onclick="Apermit('+node[i].getAttribute('name')+');"/></td>';
			}
		}
		buffer+='</tr>';
	}
	buffer+='</table></form>';
	document.getElementById(args[0]).innerHTML=buffer;
a la limite ce qui m'arrenge le plus c'est d'ecrire ce code dans une balise specifier
avec document write
je crois que je vais devoir passer a createElement :?

par Cyrano » 22 déc. 2005, 20:40

Tu voudrais manipuler quoi au juste: la valeur des attributs ou la valeur des éléments eux-même ?

traiter apres innerHTML

par jeff » 22 déc. 2005, 20:33

salut
le titre est pourri mais bon Sad

voici mon probleme j'insere dans ma page un formulaire via cette commande
Code:
document.getElementById('info').innerHTML=buffer;

avec une autre fonction je voudrai modifier mon formulaire
j'ai essaye
Code:
document.getElementsByTagName('check').length)

mais il renvoi 0

comment je peut faire pour manipuler mes elements??

ou comment utiliser document.write pour mettre mon code dans une balise precise et que cela soit compatible ie et ff