controle de champs de formulaire en JavaScript


WebRankInfo
Administrateur du site
Administrateur du site
 
Messages: 19415
Inscription: 19 Avr 2002

controle de champs de formulaire en JavaScript

Message le Mer Avr 14, 2010 18:02

é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: Tout sélectionner
  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: Tout sélectionner
function wri_set_class(id, classe) {
    document.getElementById(id).className = classe;
}

je l'appelle sur le onclick() des différents boutons :
Code: Tout sélectionner
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

Acerouk
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 416
Inscription: 16 Fév 2008

Re: controle de champs de formulaire en JavaScript

Message le Mer Avr 14, 2010 22:00

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: Tout sélectionner
   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: Tout sélectionner
<div id="publi_attente" style="display: none; position: relative;">


cedric_g
WRInaute accro
WRInaute accro
 
Messages: 3552
Inscription: 18 Jan 2006

Re: controle de champs de formulaire en JavaScript

Message le Jeu Avr 15, 2010 8:01

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)


WebRankInfo
Administrateur du site
Administrateur du site
 
Messages: 19415
Inscription: 19 Avr 2002

Re: controle de champs de formulaire en JavaScript

Message le Jeu Avr 15, 2010 8:42

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.


webinyou
WRInaute discret
WRInaute discret
 
Messages: 143
Inscription: 10 Avr 2010

Re: controle de champs de formulaire en JavaScript

Message le Jeu Avr 15, 2010 8:58

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: Tout sélectionner
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: Tout sélectionner
$("#id").addClass("maclasse");

Avec "id", l'identifiant de la balise, et "maclasse", la classe à renseigner.


WebRankInfo
Administrateur du site
Administrateur du site
 
Messages: 19415
Inscription: 19 Avr 2002

Re: controle de champs de formulaire en JavaScript

Message le Jeu Avr 15, 2010 9:37

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


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité