Script unique effacer text dans input onClick

Résolu
danwolf7 Messages postés 58 Statut Membre -  
Alain_42 Messages postés 5413 Statut Membre -
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 ! :)

A voir également:

9 réponses

Alain_42 Messages postés 5413 Statut Membre 894
 
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
nicelife90 Messages postés 676 Statut Membre 151
 
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£!!!
0
danwolf7 Messages postés 58 Statut Membre 5
 
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^^
0
Utilisateur anonyme
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5413 Statut Membre 894
 
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
0
danwolf7 Messages postés 58 Statut Membre 5
 
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" ?
0
Alain_42 Messages postés 5413 Statut Membre 894
 
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')"> 
0
Alain_42 Messages postés 5413 Statut Membre 894
 
de plus pour l'utilisation de this vas voir ce site:

http://www.misfu.com/static/Javascript/this.html
0
danwolf7 Messages postés 58 Statut Membre 5
 
É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 !
0
Alain_42 Messages postés 5413 Statut Membre 894
 
c'est parce que tu avait pris le script proposé par HackTrack
0