11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

Je me permets de poser une question qui me semble basique, mais je ne trouve pas la réponse. Je débute avec Jquery. En fait, pour un formulaire donné, comprenant de nombreux champs, je souhaite modifier un label en fonction d'un champs sélectionné ... Je m'explique :


	$('#26 #transaction_type').change(function() {
		....
	});


Lorsque le champs transaction_type du formulaire n°26 est changée (il s'agit de boutons), je souhaiter changer la valeur d'un label d'un autres champs. A savoir dans le formulaire n°26, le label suivant : <label for="transaction_beneficiary">Bénéficiaire / Déficiaire</label>.
Si transaction_type vaut 1, alors j'aimerais que le label précité indique juste "Bénéficiaire". Si transaction_type vaut 2, j'aimerais que le label indique juste "Déficiaire". J'ai déjà testé, à la place des trois points dans le code ci-dessus, $('#26 label').text('Test') et ça change tous les label.

Quelqu'un pourrait m'aider ?
Merci d'avance. Smiley smile
Modifié par Gaylord.P (04 Jun 2010 - 15:37)
Je n'ai pas le html in extenso, mais ça me paraît normal.
"#26 label" est un sélecteur pour tout label inclus dans la balise qui porte l'id "#26".

Les sélecteurs jquery fonctionnent comme des sélecteurs css.
Le plus simple est d'assigner un id à ton label.
Si tu en as une tripotée, il vaut mieux utiliser une fonction de traversing telle que prev().
dans ton cas, un $(this).prev().text('machin') devrait fonctionner.

Si ça bloque, poste ton html stp.
Ah oui, exact ! J'avais oublié que Jquery pouvait parfaitement compter les éléments. J'ai donc réussi, merci beaucoup. Pour ceux qui ont un problème similaire, voici la portion de code javascript :


	$('#26 input[type=radio][name=transaction_type]').change(function() {
		if($(this).val() == 'transaction_type_1') {
			$('#26 label:eq(3)').text('Bénéficiaire');
		}
		else if($(this).val() == 'transaction_type_2') {
			$('#26 label:eq(3)').text('Déficiaire');
		}
	});


Encore merci Smiley smile