11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à vous et merci d'avance pour votre aide.

Je souhaite modifier le value d'un input text si celui-ci est vide.
Mais je rencotre quelque soucis avec mon code.


function comment_txt(input_name){
	if (!(document.getElementsByName(input_name) == '')){
		switch (input_name) { 
			case 'datum':
				alert('date')
				alert(input_name)
				document.getElementsByName(input_name).value = 'Datum';
			break; 
			case 'hour':
				document.getElementsByName(input_name).value = 'Arrival time';
			break; 
			case 'departure':
				document.getElementsByName(input_name).value = valdeparture;
			break; 
			case 'detail':
				document.getElementsByName(input_name).value = valdetail;
			break; 
		}
	}	
};




<input type="text" name="datum" value="Datum" onChange="comment_txt('datum')">
<input type="text" name="hour" value="Arrival time" style="width:100px;" onChange="comment_txt('hour')">
<input type="text" name="departure" value="Station" onChange="comment_txt('departure')">
<input type="text" name="detail" value="Train number" onChange="comment_txt('detail')">


Mes deux alert fonctionne dés que le input en question est modifié.
Et j'aimerais savoir pourquoi je dois utiliser un "if not" pour que ça fonctionne ?
Merci à vous,
Modifié par Rifton007 (14 Nov 2011 - 19:28)
Tu utilises

document.getElementsByName(input_name) == ""

et là tu ne compares pas la valeur, donc

document.getElementsByName(input_name).value == ""

marchera sans doute mieux
Cela ne change rien.
Même ce simple code et sans effet.



function comment_txt(){
	if (document.getElementsByTagName('datum').value = ''){			
				alert('vide');
	}
};



Je me demande aussi si l'input en question est utilisé dans un form, change quelque chose au code ?
Merci à toi,
Modifié par Rifton007 (14 Nov 2011 - 18:40)
Modérateur
Bonjour,

Attention, getElementsByTagName retourne une collection d'objets. Faire attention aussi au = et == qui sont deux choses différentes.

Tu pourrais jeter un oeil à getElementById plutôt et à l'utilisation de l'attribut id sur tes éléments HTML.
Modifié par Tony Monast (14 Nov 2011 - 19:09)
C'est ce que j'allais dire, je n'ai pas dis

document.getElementsByName(input_name).value = ""

mais bien

document.getElementsByName(input_name).value == ""
Merci infinement à tout les deux.
Effectivement avec getElementById cela fonctionne aussi tôt.

Finalement la propriété "name" d'un input sert à quoi alors ?
Modifié par Rifton007 (14 Nov 2011 - 19:29)