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 :

[AJAX] Formulaire dynamique et datepicker


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2012
    Messages : 34
    Points : 31
    Points
    31
    Par défaut [AJAX] Formulaire dynamique et datepicker
    Bonjour,

    J'ai un petit probleme, je viens de faire un formulaire dynamique du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <tr>
    						<td><b>Expenses details :</b></td>
    						<td>
    							<br></br>
    							<a href="javascript:void(0);" onclick="fnClickAddRow();">Add a new row...</a><br></br><br></br>
    					<table id="example">
    					<thead><tr><th>Date</th><th>Topic</th><th>Travel</th><th>Meal</th><th>Hotel</th><th>Misc</th><th>Project Code</th><th>Currency</th><th>Rate</th><th>Total</th></tr></thead>
    					<tbody />
    					<tfoot><tr><th>Date</th><th>Topic</th><th>Travel</th><th>Meal</th><th>Hotel</th><th>Misc</th><th>Project Code</th><th>Currency</th><th>Rate</th><th>Total</th></tr></tfoot>
    					</table>
    					</td>		
    					</tr>
    Je peux rajouter des lignes grace a la commande :

    Code : 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
     
    function fnClickAddRow()
    {
     
    	var mesInput = '<tr>';
     
    	for (var i=0;i<10;i++)
    	{
    		if (i==1) mesInput += '<td><input type="text" size="15" id="idinput' + idinput +'" onClick="calc();"></td>';
    		else if (i==0) mesInput += '<td><input type="text" size="15" id="idinput' + idinput +'" onClick="addDate();"></td>';
     
    		else mesInput += '<td><input type="text" size="7" id="idinput' + idinput +'" onClick="calc();"></td>';
     
     
     
    		idinput++;
    	}
    	mesInput += '</tr>';
    	$('#example').append(mesInput);
    	addDate();
     
     
    }
    J'ai mis plusieurs condition car quand
    i=0 j'aimerais faire un datepicker
    i=1, j'ai besoin de plus de place
    Le reste ce sera pareil.

    Sur mon i=0 je veux donc faire un date picker....

    J'ai donc essayé quand j'appel la fonction addDate d'en créer un mais ça ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    function addDate()
    {
    $("#idinput0").datepicker(); //mis idinput0 pour tester aprés ce sera "idinput" + idinput
     
    }
    La aucun résultat.

    J'ai un input text qui était déja créer j'ai donc essayé de mettre un datepicker dans addDate dessus mais ça ne marche.

    La seule solution pour que je puisse faire un datepicker ( sur un element qui existe déja et donc non dynamique) est de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    jQuery(document).ready(function($){
        $("#ctl00_PlaceHolderMain_g_12f3509f_aa7d_4c75_93c3_e1af3b107ca7_ff8_1_ctl00_ctl00_TextField").datepicker();
    })
    Mais bon ce n'est pas sur un input ou il doit y avoir un calendrier.
    Je veux mon datepicker uniquement sur mon premier input de chaque ligne, mais je n'y parviens pas ...

    Des idées ?
    En vous remerciant ...

  2. #2
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Je vais laisser les spécialistes de jQuery répondre à la question, ce n'est pas trop mon domaine, mais quelques remarques générales quand même pour t'aider à rendre ta question intelligible et obtenir des réponses :

    1) datepicker --> connait pas en JS pur. Si tu utilises des éléments tirés de librairies ou modules tiers, il me semble qu'il serait utile de préciser quelle source (et quelle version pour les libs, car la suite du contexte nous montre que c'est du jQuery) ^^

    2) au début de ton message, l'extrait que tu postes en l'appelant "formulaire dynamique" est... mystique.
    > pas le moindre rapport avec un formulaire (ni début ni fin ni inputs....), même la construction de tables imbriquées contenant le form est tronquée...
    > rien de dynamique ici puisque c'est (à juste titre) le code généré (comme le suggère notamment l'indentation de style *accident de camion* )
    > on ignore à quoi servait de nous montrer cet extrait (tu as oublié de le préciser)

    3) juste par curiosité...
    Citation Envoyé par Mordok
    La seule solution pour que je puisse faire un datepicker ( sur un element qui existe déja et donc non dynamique)
    ...tu veux dire que "ctl00_PlaceHolderMain_g_12f3509f_aa7d_4c75_93c3_e1af3b107ca7_ff8_1_ctl00_ctl00_TextField" est non pas un id généré par une routine, mais une chaine délibérément choisie par toi... ? (ok ok c'est un éditeur WYSIWYG qui "crache" ce genre de chaine, je sais... mais quand même ... comment on dit "WTF" en français déjà ? )

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2012
    Messages : 34
    Points : 31
    Points
    31
    Par défaut
    oui il s'agit d'id généré par ce **%%%%!!%% de sharepoint :p

    Autrement oui désolé je me sers de JQUERY et j'ai bien importer les fichiers necessaires.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js"></script>
    <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/themes/smoothness/jquery-ui.css" />
    MErci

  4. #4
    Membre averti Avatar de SPACHFR
    Profil pro
    Paaaaaa
    Inscrit en
    Février 2004
    Messages
    557
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paaaaaa

    Informations forums :
    Inscription : Février 2004
    Messages : 557
    Points : 400
    Points
    400
    Par défaut
    Bonjour,

    Vérifie que datepicker est bien déclaré dans le fichier js "jquery-ui.min.js"
    Regarde la console d'erreur de FF (si tu utilises ce navigateur).

    Sinon j'utilise la fonction ci-dessous pour ajouter un datepicker sur un input de type text

    Code : 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
     
    function addPicker(id){
    		$("#"+id).datepicker({ 
    		showAnim : 'fold',
    		showOn: 'button',
    		buttonImage : './themes/start/images/calendar.png',
    		buttonImageOnly: true,
    		dateFormat: 'yy-mm-dd',
    		changeMonth: true,
    		changeYear: true,
    		beforeShow : function() {if($("#"+id).val=="") return false;},
    		onClose : function(){
    					//alert($("#"+id).val());
    				}
    		});
    	}
    Quant à la selection du premier input de chaque ligne un petit exemple ci-dessous.
    Seul les inputs en première colonne de la table 'mtab" sont modifié en rouge.
    Code : 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
    24
    25
    26
    27
    28
    29
    30
     
    <html>
      <head>
      <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
      <script type="text/javascript">
      	$(document).ready(function(){
      		$(" #mtab td:first-child > input").css("color", "red");
      	});
      </script>
     
      <style>
     
      td { color:blue; font-weight:bold; }
     
      </style>
      </head>
      <body>
     
     <table id="mtab">
        <tr><td><input type="text" value="Row 1"/></td><td><input type="text" value="Row 1 col 2"/></td></tr>
        <tr><td><input type="text" value="Row 2"/></td><td><input type="text" value="Row 2 col 2"/></td></tr>
        <tr><td><input type="text" value="Row 3"/></td><td><input type="text" value="Row 3 col 2"/></td></tr>
      </table>
     <table id="Atab">
        <tr><td><input type="text" value="Row 4"/></td></tr>
        <tr><td><input type="text" value="Row 5"/></td></tr>
        <tr><td><input type="text" value="Row 6"/></td></tr>
      </table>
      </body>
      </html>
    Voici ma maigre contribution (je ne suis pas un spécialiste jQuery)
    S'il n'y a pas de solution c'est qu'il n'y a pas de problème.

  5. #5
    Invité
    Invité(e)
    Par défaut
    slt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    size="15" id="idinput' + idinput +'" o
    que vaut idinput, tu devrais plutot ecrire i.

Discussions similaires

  1. [AJAX] Formulaire dynamique et datepicker
    Par Razorbak dans le forum jQuery
    Réponses: 1
    Dernier message: 19/10/2012, 22h24
  2. [AJAX] Formulaire dynamique
    Par kikou732 dans le forum AJAX
    Réponses: 0
    Dernier message: 26/12/2011, 22h23
  3. [1.x] Formulaire dynamique AJAX
    Par fastone650 dans le forum Symfony
    Réponses: 11
    Dernier message: 08/05/2011, 15h14
  4. [1.x] formulaire dynamique avec ajax
    Par belgacem.tlili dans le forum Symfony
    Réponses: 1
    Dernier message: 29/03/2010, 22h05

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