Script unique effacer text dans input onClick

Résolu/Fermé
danwolf7 Messages postés 54 Date d'inscription jeudi 29 octobre 2009 Statut Membre Dernière intervention 12 juillet 2016 - Modifié par danwolf7 le 29/08/2012 à 21:21
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 1 sept. 2012 à 21:22
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 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
30 août 2012 à 16:35
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 615 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 10 avril 2018 151
Modifié par nicelife90 le 29/08/2012 à 22:44
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 54 Date d'inscription jeudi 29 octobre 2009 Statut Membre Dernière intervention 12 juillet 2016 5
Modifié par danwolf7 le 30/08/2012 à 16:16
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
30 août 2012 à 18:51
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 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 30/08/2012 à 20:14
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 54 Date d'inscription jeudi 29 octobre 2009 Statut Membre Dernière intervention 12 juillet 2016 5
Modifié par danwolf7 le 31/08/2012 à 19:43
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 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
31 août 2012 à 21:30
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 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 1/09/2012 à 09:28
de plus pour l'utilisation de this vas voir ce site:

http://www.misfu.com/static/Javascript/this.html
0
danwolf7 Messages postés 54 Date d'inscription jeudi 29 octobre 2009 Statut Membre Dernière intervention 12 juillet 2016 5
1 sept. 2012 à 11:47
É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 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
1 sept. 2012 à 21:22
c'est parce que tu avait pris le script proposé par HackTrack
0