Controle de champs de formulaire en JavaScript

Olivier Duffez (admin)
Membre du personnel
étant nul en JS, je me tourne vers vous pour avoir de l'aide pour quelques développements Javascript dans mon annuaire

1/ récupérer l'année courante
j'ai utilisé ce code :
Code:
  var aujourdhui = new Date();
  var annee = aujourdhui.getYear() + 1900;
j'ai noté que selon les navigateurs il faut ou pas ajouter 1900. Quelle est la bonne technique robuste ?

2/ modifier un style CSS selon qu'une case à cocher est cochée ou pas
dans l'annuaire, on doit indiquer si le site est édité à titre pro ou perso. Selon la case cochée, d'autres champs doivent apparaitre ou rester cachés.
pour cela j'ai une fonction JS qui modifie une classe CSS :
Code:
function wri_set_class(id, classe) {
    document.getElementById(id).className = classe;
}
je l'appelle sur le onclick() des différents boutons :
Code:
 onclick="wri_set_class('zone_site_pro', 'champ_affiche')
la classe est également initialisée comme il faut selon la valeur cochée du bouton au chargement du formulaire
ce code marche bien dans Firefox, Chrome mais dans IE il marche sur un ordinateur et pas l'autre
auriez-vous une idée ?

merci d'avance pour votre aide
Olivier
 
WRInaute occasionnel
1/ Pourquoi récupérer l'année courante en js si cela dépend du navigateur ? La récupérer en php ce n'est pas mieux via date() ?

2/ Je suis aussi nul en JS et ce que j'avais trouvé pour faire la même chose c'est un display none d'une div modifié par js.
Quand je relis mon code il me semble que les différentes conditions sont justement là pour être robuste aux navigateurs.
Code:
	var item = null;
	if (document.getElementById) {
		item = document.getElementById("publi_attente");
	} else if (document.all){
		item = document.all["publi_attente"];
	} else if (document.layers){
		item = document.layers["publi_attente"];
	} 
	item.style.display = "";
Avec évidemment :
Code:
<div id="publi_attente" style="display: none; position: relative;">
 
WRInaute accro
Bonjour Olivier

Très rapidement en passant, pourquoi n'utilises-tu pas JQuery ? Il permet de faire facilement tout ce que tu demandes (hormis la date où je suis d'accord avec Acerouk)

Au niveau des sélecteurs il est très simple à utiliser, et l'on ne se soucis pas de la compatibilité cross navigateurs (légèrement problématique en JS sur les sélecteurs, justement)
 
Olivier Duffez (admin)
Membre du personnel
merci pour vos réponses

je veux utiliser JS et non PHP pour controler la date directement en JS (sans recharger la page du formulaire en cas d'erreur)

j'ai commencé à utiliser JQuery pour le zoom sur la vignette dans la fiche détaillée, mais je n'avais pas pensé à l'utiliser pour gérer le formulaire. Je vais aller me renseigner, merci du tuyau.
 
WRInaute discret
1. L'année en javascript, utiliser "getFullYear()" (année en 4 chiffres) au lieu de "getYear()" car la méthode est deprecated, selon le site http://www.w3schools.com/jsref/jsref_obj_date.asp. Par conséquent :
Code:
var aujourdhui = new Date(), annee = aujourdhui.getFullYear();

2. L'affectation d'une classe avec jquery (http://api.jquery.com/addClass/) s'effectue de la manière suivante :
Code:
$("#id").addClass("maclasse");
Avec "id", l'identifiant de la balise, et "maclasse", la classe à renseigner.
 
Olivier Duffez (admin)
Membre du personnel
merci !

j'ai l'impression que mon pb actuel n'est pas l'affectation de la classe mais la détection de l'événement (le clic sur le bouton radio) ou de l'état du bouton au chargement de la page
 
Discussions similaires
Haut