Script unique effacer text dans input onClick [Résolu/Fermé]

Signaler
Messages postés
54
Date d'inscription
jeudi 29 octobre 2009
Statut
Membre
Dernière intervention
12 juillet 2016
-
Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
-
Bonjour,

Je souhaiterai faire un scripte unique pour que quand je clique sur une input le texte s'efface
et que quand ce dernier perd le focus le texte de départ revienne, si inchangé.

Voici mon scripte :
<input class="input_db" name="name" type="text" value="Nom de famille" autocomplete="off" onfocus="db_input_focus()" onblur="db_input_blur()">   

function db_input_focus(){   
 if (this.value==this.name)   
 {this.value="";}   
}   
function db_input_blur(){   
 if (this.value=="")   
 {this.value=this.Name;}   
}

J'aimerai au fait que la valeur originale sois le "Name" de cette input.
Mais ce javascript ne marche pas. Que faut-il faire pour qu'il puisse marcher avec ce raisonnement ?

Merci d'avance ! :)

9 réponses

Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
873
voilà en passant en parametre ce qui est écrit dans l'input aux fonctions JS:
<script type="text/javascript">
function db_input_focus(id_input,text_input){
	var champ=document.getElementById(id_input);
	if (champ.value	==	text_input) {
		champ.value="";
	}   
}   
function db_input_blur(id_input,text_input){
	var champ=document.getElementById(id_input);
	if (champ.value==""){
		champ.value=text_input;
	}   
}
</script>

<input class="input_db" name="nom" id="nom" type="text" value="Nom de famille" autocomplete="off" onfocus="db_input_focus(this.id,'Nom de famille')" onblur="db_input_blur(this.id,'Nom de famille')">   
<input class="input_db" name="prenom" id="prenom" type="text" value="Prenom" autocomplete="off" onfocus="db_input_focus(this.id,'Prenom')" onblur="db_input_blur(this.id,'Prenom')"> 
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 78091 internautes nous ont dit merci ce mois-ci

Messages postés
622
Date d'inscription
vendredi 24 septembre 2010
Statut
Membre
Dernière intervention
10 avril 2018
141
Salut,

simplement comme ceci :

<input class="input_db" name="name" type="text" value="Name" onFocus="if(this.value=='Name')this.value=''" onBlur="if(this.value=='')this.value='Name'">   


bonne chance!
Bonne chance à toi et bonne fin de journée!
N!C£-L!F£!!!
Messages postés
54
Date d'inscription
jeudi 29 octobre 2009
Statut
Membre
Dernière intervention
12 juillet 2016
4
D'abord merci de votre réponse.

Cela marche très bien mais ce n'est pas ce que je recherche.
Ce que je cherche c'est de pouvoir dire que la value prenne la valeur du name="..." pour qu'au final le scripte soit compatible avec toutes mes input. Pas que je doive à chaque fois remettre une valeur dans le js.

J'espère que vous aurez compris^^
Messages postés
623
Date d'inscription
vendredi 26 juillet 2002
Statut
Membre
Dernière intervention
11 novembre 2012
967
Salut!

Ceci devrait te convenir:

<html>
	<head>
		<script>
			function db_input_focus(elm){   
				elm.value="";		 
			}   
			function db_input_blur(elm){   
				if (elm.value==""){
					elm.value=elm.name;
				}				
			}
			function initInputValue(){
				var divs = document.getElementsByTagName('input');
				alert(divs.length);
				for(var i=0 ; i<divs.length ; i++){
					divs[i].value=divs[i].name;
				}
			}
		</script>
	</head>
	<body onload="initInputValue();">
		<input name="name1" type="text" value="" onfocus="db_input_focus(this);" onblur="db_input_blur(this);">  
		<input name="name2" type="text" value="" onfocus="db_input_focus(this);" onblur="db_input_blur(this);">   
	</body>
</html>


;-)
HackTrack
Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
873
HackTrack que se passe-t-il si tu recliques dans un input, pour modifier une saisie par exemple:

ça efface tout le contenu de l'input
Messages postés
54
Date d'inscription
jeudi 29 octobre 2009
Statut
Membre
Dernière intervention
12 juillet 2016
4
Alors merci beaucoup pour votre aide.

Après c'est pas encore tout à fait ce que je cherche. Le problème est que vos scriptes effacent l'input même si la valeur à été changée, ou ils ne remettent pas la valeur de départ si l'input est vide.

Mais après, je viens de me rendre compte que ce que je demande n'est pas possible, ou plutôt que ce que je demande n'est pas vraiment ce que je cherche.

Mais bon, pour ma culture générale, comment faire pour dire à l'ordi :
<input class="input_db" name="name" type="text" value="Nom de famille" autocomplete="off" onfocus="db_input_focus()" onblur="db_input_blur()">    

function db_input_focus(){    
 if (this.value==this.name)    
 {this.value="";}    
}    
function db_input_blur(){    
 if (this.value=="")    
 {this.value=this.Name;}    
}
Quel serait le bon "vocabulaire" ?
Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
873
pourtant le script que je t'ai fait répond à ce que tu demandes.
Je souhaiterai faire un scripte unique pour que quand je clique sur une input le texte s'efface
et que quand ce dernier perd le focus le texte de départ revienne, si inchangé.


dans ton code:

function db_input_focus(){
if (this.value==this.name)
// la tu testes si la valeur lue dans l'input au moment du focus, en l'occurrence ce qui est écrit dans value donc Nom de famille est égal au name c a d name
==> c'est impossible
{this.value="";}
}

chez moi le petit exemple que je t'ai fait fonctionne
<script type="text/javascript">
function db_input_focus(id_input,text_input){
	var champ=document.getElementById(id_input);
	if (champ.value	==	text_input) {
		champ.value="";
	}   
}   
function db_input_blur(id_input,text_input){
	var champ=document.getElementById(id_input);
	if (champ.value==""){
		champ.value=text_input;
	}   
}
</script>

<input class="input_db" name="nom" id="nom" type="text" value="Nom de famille" autocomplete="off" onfocus="db_input_focus(this.id,'Nom de famille')" onblur="db_input_blur(this.id,'Nom de famille')">   
<input class="input_db" name="prenom" id="prenom" type="text" value="Prenom" autocomplete="off" onfocus="db_input_focus(this.id,'Prenom')" onblur="db_input_blur(this.id,'Prenom')"> 
Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
873
de plus pour l'utilisation de this vas voir ce site:

http://www.misfu.com/static/Javascript/this.html
Messages postés
54
Date d'inscription
jeudi 29 octobre 2009
Statut
Membre
Dernière intervention
12 juillet 2016
4
Étrange, avant ce scripte m'effaçait le texte même si il était changé.
Mais maintenant ça marche parfaitement. Peut-être que je l'avais mal adapté chez moi...

En tout cas merci beaucoup pour votre aide.
Et merci aussi du lien pour l'utilisation du this, ça me sera super utile :)

Sujet résolu !
Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
873
c'est parce que tu avait pris le script proposé par HackTrack