IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Datepicker non actif


Sujet :

JavaScript

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2017
    Messages : 2
    Par défaut Datepicker non actif
    Bonjour à tous,

    Je voudrais créer un form (dans un fichier JSTL) pour renseigner des dates. J'utilise Bootstrap et les glyphicons pour rendre tout cela tout beau.

    Le truc c'est que je voudrais permettre à l'utilisateur d'ajouter des champs de date s'il le souhaite. J'ai donc créé un bouton '+' qui appelle une fonction javascript qui utilise insertAdjacentHTML() pour insérer le code nécessaire (le même code que j'utilise pour les champs de date 'classiques').

    L'affichage sur ma page est bon mais le champs ne réagit pas, j'ai beau cliquer partout sur le nouveau champ, le calendrier pour choisir la date ne s'affiche pas et je ne peux donc pas choisir de date.

    Nom : screenDate.jpg
Affichages : 108
Taille : 11,0 Ko Le champ s'affiche bien

    Nom : ScreenDateCalendrier.jpg
Affichages : 109
Taille : 25,6 Ko
    <- L'affichage que je veux quand je clique sur le champ mais qui ne marche pas avec ceux ajoutés avec le javascript

    Ma fonction javascript pour insérer le code (désolé pour le formatage) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function addDate(divName) {
                var divDate = document.getElementById(divName);
                divDate.insertAdjacentHTML('beforeend', '<div class=\"input-group date form_date\" data-date=\"\" data-date-format=\"dd MM yyyy\" data-link-field=\"dateRemisePoster\" data-link-format=\"yyyy-mm-dd\"> <input class=\"form-control\" size=\"16\" type=text value=\"${dateRemisePoster}\" readonly> <span class=\"input-group-addon\"> <span class=\"glyphicon glyphicon-remove\"></span></span> <span class=\"input-group-addon\"> <span class=\"glyphicon glyphicon-calendar\"></span></span> </div> <div> <input type=\"hidden\" id=\"dateRemisePoster\" name=\"dateRemisePoster\" value=\"${dateRemisePoster}\" /> </div>');
            }
    Le code jstl de mon champ date et de mon bouton :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <div class="row">
    	<div class="col-lg-10 col-md-10" id="dateRemisePosterDiv">
    		<div class="input-group date form_date" data-date=""
    		        data-date-format="dd MM yyyy"
    			data-link-field="dateRemisePoster"
    			data-link-format="yyyy-mm-dd">
    		<input class="form-control" size="16" type=text
    			value="${dateRemisePoster}" readonly> <span
    			class="input-group-addon"> <span
    			class="glyphicon glyphicon-remove"></span></span> <span
    			class="input-group-addon"> <span
    			class="glyphicon glyphicon-calendar"></span></span>
    		</div>
    	        <div>
    		        <input type="hidden" id="dateRemisePoster"
    			        name="dateRemisePoster" value="${dateRemisePoster}" />
    	        </div>
            </div>
    	<div class="col-lg-2 col-md-2">
    		<input type="button" name="buttonAdd" id="addRemisePoster"
    			value="+" onClick="addDate('dateRemisePosterDiv');" />
    	</div>
    </div>


    PS : En inspectant l'élément avec chrome, le code ajouté correspond bien avec ce que je veux.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- Dans la fonction addDate, on trouve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...id=\"dateRemisePoster\"...
    Ce n'est pas possible : un id doit être UNIQUE.

    Idem pour name :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...name="dateRemisePoster"...
    Ça va "écraser" l'autre.
    Pour conserver le même name, il faut mettre des crochet []. Ainsi, on récupèrera un array des dates :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...name="dateRemisePoster[]"...
    (idem dans l'"original")

    2- Le code HTML ajouté n'était pas présent dans le DOM au chargement de la page : il faut réactiver datepicker sur ce code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function addDate(divName) {
    ...
       $('...??...').datepicker();
    }

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2017
    Messages : 2
    Par défaut
    Il me renvoie un String vide : "" , Je ne comprends pas pourquoi.. Y a t-il autre chose à faire que de mettre des crochets ?
    Pour les id , je les ai carrément enlevés pour résoudre le problème

Discussions similaires

  1. Bouton "liste des champs" non actif
    Par emilie31 dans le forum Access
    Réponses: 5
    Dernier message: 25/01/2007, 21h44
  2. Réponses: 2
    Dernier message: 19/12/2006, 12h38
  3. IIS - Installé mais non actif ?
    Par yamadix dans le forum IIS
    Réponses: 1
    Dernier message: 26/11/2006, 21h28
  4. Réponses: 4
    Dernier message: 22/09/2006, 14h29
  5. JScrollPane non actif (layout)
    Par Oliveuh dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 21/07/2004, 10h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo