Niveau
..........
En rapport...

Enregistrer un formulaire

Cette fonction vous permettra d'enregistrer un formulaire avec toute les informations rentrées par l'utilisateur à un instant T

javascript
Array.prototype.in_array = function(valeur) {
	for (var i in this) { if (this[i] == valeur) return i;}
	return -1;
}
function fixForm(myForm,disableMe) {
	var radioName= new Array();
	//gestion des inputs	
	allInput=myForm.getElementsByTagName('input');
	for (var i=0;i<allInput.length;i++) {
		//pour les champs text
		if (allInput[i].type=="text") {
			allInput[i].setAttribute("value",allInput[i].value);
		}
		//pour les checkbox
		else if (allInput[i].type=="checkbox" && allInput[i].checked==true) {
			allInput[i].setAttribute("checked",true);
		}
		//pour les radios
		else if (allInput[i].type=="radio" && radioName.in_array(allInput[i].name)==-1) {
			//on enregistre dans le tableau radioName les différents nom des boutons radio
			radioName.push(allInput[i].name);
		}
		if (disableMe==true) {
			if (allInput[i].name!="resultForm") {//le champ hidden ne doit pas etre disable
				allInput[i].setAttribute("disabled",true);
			}
		}
	}
	//on gère les radiobuttons selon les nom enregistré dans radioName
	for (var i=0;i<radioName.length;i++) {
//getElementsByName ne fonctionne pas sur les formulaire il faut l'appliquer au document entier		
thisRadio=document.getElementsByName(radioName[i]);
		for (var j=0;j<thisRadio.length;j++) {
			if (thisRadio[j].checked==true) {
				thisRadio[j].setAttribute("checked",true);
			}
			else {
				thisRadio[j].removeAttribute("checked");
			}
		}
	}
	//gestion des select
	allSelect=myForm.getElementsByTagName('select');
	for (var i=0;i<allSelect.length;i++) {
		for (j=0;j<allSelect[i].options.length;j++) {
			allSelect[i].options[j].setAttribute("selected",false);//on remet toutes les options a false
		}
		//on met l'attribut selected a true pour l'option selectionnée
		allSelect[i].options[allSelect[i].selectedIndex].setAttribute("selected",true);
		if (disableMe==true) {
			allSelect[i].setAttribute("disabled",true);
		}
	}
	//pour les textareas
	allArea=myForm.getElementsByTagName('textarea');
	for (var i=0;i<allArea.length;i++) {
		allArea[i].innerHTML=allArea[i].value;
		if (disableMe==true) {
			allArea[i].setAttribute("disabled",true);
		}
	}
	return (myForm.innerHTML);
}

MyForm est un objet html de type formulaire.

Exemple d'utilisation:

javascript
function launchForm(myForm) {
var resultForm=fixForm(myForm,true);
myForm.resultForm.value=resultForm;
myForm.submit();
}

La fonction launchForm enregistre dans la variable resultForm le formulaire myForm.
True signifie que les champ de formulaire seront rendu inactif (disabled).
myForm.resultForm.value=resultForm permet de remplir un champ caché nomé resultForm. myForm.submit() post le formulaire.


17/08/2007 14:07 -

ManiT4c
Vous désirez créer votre site web ? Je suiswebmaster en normandie sinon vous pouvez consulter mon profil yoolink pour suivre mon actu etmon twitter.

Discussion

Si vous ne pouvez pas lire les lettres, téléchargez ce fichier WEV et écoutez les.