8722 sujets

Développement web côté serveur, CMS

Bonjour, dans un formulaire j'ai region, département, code postal & ville

je cherche un moyen que si la personne change un des deux select (region ou département) que mon input (code postal & ville ) se vide

merci de vos pistes ou solutions

upload/50985-imgbeta5-9.jpg
Bonjour,

Il te faut utiliser du jQuery :
$('select[name="region"], select[name="departement"]').change(function(){
    $('input[name="cp"], input[name="ville"]').val('');
});

Le code est, bien évidemment, à adapter à ton cas. Smiley cligne

edit: quand je dis jQuery, c'est pas obligatoire, du js peux également faire l'affaire.
Modifié par Raphi (30 Jun 2015 - 15:11)
Modérateur
Plop, juste, au passage, vous avez pas l'impression que charger tout JQuery pour effacer un input c'est un poil trop non ?

var select = document.getElementById("select");
var toclear = document.getElementById("toclear");

select.addEventListener("change", function() {
    toclear.innerHTML = '';
});

https://jsfiddle.net/rjhts4qm/1/
_laurent a écrit :
Plop, juste, au passage, vous avez pas l'impression que charger tout JQuery pour effacer un input c'est un poil trop non ?


Et demander la région, le département, le code postal et la ville quand le code postal suffit, c'est trop aussi ? Smiley smile
Modérateur
Salut,

@_laurent : Tu ne réponds très bien à le demande. Mais pour moi c'est +1.

Pourquoi ? Le code est en natif. Donc c'est toujours mieux que Jcuicui. Aussi, le code est sensiblement de la même densité.

bibi67 a écrit :
Bonjour, dans un formulaire j'ai region, département, code postal & ville

je cherche un moyen que si la personne change un des deux select (region ou département) que mon input (code postal & ville ) se vide

merci de vos pistes ou solutions

upload/50985-imgbeta5-9.jpg


Ce qui donne en natif :

<select name="unChamp" id="unChamp">
		<option value="0">0</option>
		<option value="1">1</option>
	</select>
	<input name="unAutreChamp" id="unAutreChamp" class="champAVider" value="">
	<input name="etUnAutreChamp" id="etUnAutreChamp" class="champAVider" value="">


window.addEventListener('load',function(){
        	var listeChampAVider = document.getElementsByClassName('champAVider'); //querySelectorAll fait aussi l'affaire.
        	
        	document.getElementById('unChamp').addEventListener('change',function(){
        		for(var i = 0 ; i < listeChampAVider.length ; i++){
        			listeChampAVider[ i ].value = "";
        		}
        	});	
        });


Raphi a écrit :
quand je dis jQuery, c'est pas obligatoire, du js peux également faire l'affaire.


+1 Tout dépend de la complexité. Après tu peux partir d'une base native et utiliser du jcuicui pour des choses un peu plus complexe (40000 lignes en natif VS 3 lignes avec Jcuicui).
Modifié par niuxe (30 Jun 2015 - 21:33)
Modérateur
lamext a écrit :
Et demander la région, le département, le code postal et la ville quand le code postal suffit, c'est trop aussi ?
Smiley lol
Je vois un innerHTML traîner dans un des codes. Pour rappel, pour les champs de formulaire c'est toujours value. Histoire d'enlever des doutes à celui qui passerait par là.

a écrit :
Plop, juste, au passage, vous avez pas l'impression que charger tout JQuery pour effacer un input c'est un poil trop non ?


Ce que je trouve impressionnant, c'est surtout que JQuery est tellement répandu qu'il est considéré comme implicite, alors même que la personne à l'origine de la question ne le mentionne pas et qu'aucun code ne trahit sa présence. A tel point qu'on est obligé de le préciser explicitement quand on cherche une solution pur js ou avec un autre framework.

La logique voudrait quand même que ce soit l'inverse, non ?


C'est comme si quelqu'un venait poser une question de PHP assez générale sans préciser les outils utilisés et qu'il obtenait une solution Symphony (ou autre framework) alors qu'il n'a jamais indiqué qu'il l'utilisait effectivement. Désolé, mais ça n'a pas de sens.

EDIT: et en plus c'est dans le mauvais forum
Modifié par QuentinC (01 Jul 2015 - 13:58)
Comment lancer un débat en une phrase?
Réponse :
Raphi a écrit :
Il te faut utiliser du jQuery


Allez, je justifie mon erreur parce que quand même hein... Smiley lol

Quand j'ai vu le message de @bibi67 j'étais justement en train d'écrire (en jQuery) le même genre de comportement pour mon application. Du coup, par réflexe, j'ai balancé cette réponse mais j'ai édité 2min après, me rendant compte de la maladroitesse (si si ça existe ce mot Smiley langue ) de ma réponse.
Et comme j'avais la flemme d'écrire la solution en js, je me suis dis que d'autre le feraient à ma place, ou que @bibi67 avait déjà chargé du jQuery dans son application, donc la solution lui conviendrait.
Bref, je ne recommencerai plus c'est promis ! Smiley decu Smiley lol
Modérateur
Raphi a écrit :
Allez, je justifie mon erreur parce que quand même hein...
Hahahaha désolé j'ai pas résisté !

Raphi a écrit :
Bref, je ne recommencerai plus c'est promis !
Si tu recommence on migre ton compte alsa sur stackoverflow !!! Smiley lol
Modérateur
QuentinC a écrit :
Je vois un innerHTML traîner dans un des codes. Pour rappel, pour les champs de formulaire c'est toujours value. Histoire d'enlever des doutes à celui qui passerait par là.

Plop, juste, au passage, vous avez pas l'impression que charger tout JQuery pour effacer un input c'est un poil trop non ?

Ce que je trouve impressionnant, c'est surtout que JQuery est tellement répandu qu'il est considéré comme implicite, alors même que la personne à l'origine de la question ne le mentionne pas et qu'aucun code ne trahit sa présence. A tel point qu'on est obligé de le préciser explicitement quand on cherche une solution pur js ou avec un autre framework.

La logique voudrait quand même que ce soit l'inverse, non ?


C'est comme si quelqu'un venait poser une question de PHP assez générale sans préciser les outils utilisés et qu'il obtenait une solution Symphony (ou autre framework) alors qu'il n'a jamais indiqué qu'il l'utilisait effectivement. Désolé, mais ça n'a pas de sens.

EDIT: et en plus c'est dans le mauvais forum


Du calme, du calme les amis (on se chamaille pour aider son prochain)

rooooo QuentinC :$ Là je vais faire une incantation pour exorciser le troll qui est entré en toi.
D'un avis général, je suis entièrement d'accord avec toi. Jcuicui par ci jcuicui par là. Bonjour les perfs....

En ce qui concerne le innerHTML, j'ai eu la même remarque. Mais il est utilisé à bon escient bien que le script ne réponde pas au problème initial. Quand on lit le code de _laurent sur https://jsfiddle.net/rjhts4qm/1/, il utilise un <p> comme élément cible (d'où le innerHTML). C'est la raison pour laquelle, j'ai écris une réponse plus adéquate.

@Raphi :
1. C'est l'intention qui compte !
2. Même si tu ne sais pas le faire, en participant à la question tu auras appris et échanger. C'est le but du forum n'est ce pas ? Smiley cligne
a écrit :
rooooo QuentinC :$ Là je vais faire une incantation pour exorciser le troll qui est entré en toi.
D'un avis général, je suis entièrement d'accord avec toi. Jcuicui par ci jcuicui par là. Bonjour les perfs....


Ce n'est pas un troll, c'est une constatation. C'est pareil sur stack. On te propose presque systématiquement une solution JQuery avant une solution pur js, même si personne n'a jamais explicitement mentionné JQuery.
On ne te pose même plus la question, tu utilises forcément JQuery.

C'est comme la tendance à vouloir placer JQuery au rang de langage. Je regrette, mais c'est un mauvais raccourci


a écrit :
En ce qui concerne le innerHTML, j'ai eu la même remarque. Mais il est utilisé à bon escient bien que le script ne réponde pas au problème initial. Quand on lit le code de _laurent sur https://jsfiddle.net/rjhts4qm/1/, il utilise un <p> comme élément cible (d'où le innerHTML). C'est la raison pour laquelle, j'ai écris une réponse plus adéquate.


OK, c'est le script qui était donc HS. Désolé.

a écrit :
Allez, je justifie mon erreur parce que quand même hein...


Techniquement tu en as fait une deuxième, tu as donné une solution javascript alors qu'ici on est sur le forum développement côté serveur.
Ceci dit je pense plutôt que c'est l'auteur initial qui s'est trompé, alors tu es tout pardonné.
Modérateur
QuentinC a écrit :

Ce n'est pas un troll, c'est une constatation. C'est pareil sur stack. On te propose presque systématiquement une solution JQuery avant une solution pur js, même si personne n'a jamais explicitement mentionné JQuery.
On ne te pose même plus la question, tu utilises forcément JQuery.

C'est comme la tendance à vouloir placer JQuery au rang de langage. Je regrette, mais c'est un mauvais raccourci


Exact.

De toute manière le code doit faire ce que l'on veut et comme on veut. C'est le but. Mais pour ce genre de script, jquery ne se justifie pas même si jquery est chargé dans la page.