11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

J'ai un soucis dans mon script JavaScript, J'ai créé une fonction censée vider mon formulaire de recherche, cependant, sur mozilla tout se vide (bon j'ai du faire quelques bidouilles pour que tout se vide mais maintenant ca fonctionne) Par contre sous safari, il y a des champs qui restent remplis Smiley ohwell

voici ma fonction:

function vider_form(form)
	{
		var els = form.elements;
		for(i=1;i<els.length;i++)
		{
			if(els[i].name=="choix_theme[]")
			{
				var sel=els[i];
				for (var i=0; i<sel.options.length; i++)
					sel.options[i].selected = ""; 
			}
			
			if(els[i].type!="submit")
				els[i].value = "";
				
			if(els[i].style.backgroundColor !="")
				els[i].style.backgroundColor ="";
		}
		//Parade pour le moment pas super propre et je ne comprends pas pourquoi ces éléments ne sont pas reconnus (et bug sous safari)
		document.getElementById("Liste1").value="";
		document.getElementById("Liste2").value="";
	}


Je vous remercie d'avance![/i][/i][/i][/i][/i][/i][/i]
Modifié par snayk (28 May 2010 - 12:46)
Tellement plus simple avec jQuery...


function vider(form)
{
$(form).children(':input')
 .not(':button, :submit, :reset, :hidden')
 .val('')
 .removeAttr('checked')
 .removeAttr('selected')
 .css('backgound-color','');
}


En plus, à priori, plus de problème de compatibilité !
Mais, bon, moi... ce que j'en dis Smiley rolleyes

En fait on devrait mettre un sujet épinglé "Si vous ne connaissez pas jQuery, prototype ou mootools, lisez ceci avant de poster" Smiley lol
Modifié par icareo (27 May 2010 - 17:12)
Hélas je ne connais pas JQuery Smiley ohwell

Je suppose que pour utiliser la fonction que tu m'as proposé, je dois inclure jquery.js, mais ensuite? est ce que je dois ajouter du code ailleurs?

Je vais rechercher des tutos, voir comment cela fonctionne, car j'ai pas mal de javascript dans mon site, et si c'est plus facile d'utiliser jquery, alors je vais regarder.

Par exemple, je teste les champs (si c'est numerique, alphabetique, une date, si au moment de la recherche un champs est faux etc...). Peut être qu'avec jquery c'est plus facile?
Tout est plus facile avec des utilitaires comme jQuery... allez, soyons modestes : ça révolutionnera ta vie Smiley smile

Tu as juste à rajouter dans ton document (avant tes scripts)

<SCRIPT type="text/javascript" language="javascript" src="jquery.js"></script>


Et c'est tout.

Pour tester une même condition (par exemple si un champ est bien numérique), je te conseille de leur mettre l'attribut class="champatester" et d'utiliser :

var ok=true;
$('.champatester').each(function()
{
  if(!(new RegExp("^[0-9]+$","g")).test($(this).val()))
    ok=false;
});
if(!ok)
 doSomething();



EDIT : tiens, d'ailleurs... pour ton problème de base : as tu testé ça ?
Modifié par icareo (27 May 2010 - 17:30)
Oh punaise :o

le coup du Form.reset(idForm); ca marche impec' !! Je ne connaissais pas .... C'est parfait!

Ah.... Non :'( Ca ne marche pas du tout sous safari... J'ai eu un coup d'espoir.. Impec sous Firefox, mais pas Safari.

Bon ben je vais voir pour utiliser JQuery alors!


EDIT: Donc pour les champs que je souhaite tester, tout marche comme il faut Smiley langue , donc au pire je peux laisser ca. Je vais tester jquery que pour le formulaire et si j'ai du temps je verrai pour le reste (je suis en stage, mon projet c'est ce site que je fais tout seul, et il me reste pas énormément de temps Smiley cligne ) Je vais surtout devoir bosser sur le css qui bug en fonction des navigateurs Smiley ohwell

EDIT AGAIN: J'ai trouvé un truc qui marche, au lieu de faire un imput de type button, jai créé un input de type reset... Ca marche bien, je l'inclus dans mon form et ca regle le soucis!! A moi maintenant de le placer ou je veux via CSS! Smiley lol


Merci pour l'aide!! Je me renseignerai sur jquery, j'en entends beaucoup parler, donc je m'y formerai (hors de ce projet) Smiley smile
Modifié par snayk (28 May 2010 - 09:54)