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

jQuery Discussion :

keyup sur un input d'une modale pour construire une URL dynamique


Sujet :

jQuery

  1. #1
    Membre à l'essai
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2018
    Messages : 10
    Points : 10
    Points
    10
    Par défaut keyup sur un input d'une modale pour construire une URL dynamique
    Bonjour à tous,

    Débutant de toujours, j'essaie en vain et depuis pas mal de temps de :

    • demander la saisie de texte dans une modale (id="ean")
    • récupérer la valeur de cet input
    • ajouter à mon URL le paramètre &ean=XXXXXX


    Sauf que, de la manière dont j'ai rédigé mon script, je me dis que lorsque l'input est servi, la création de l'URL en bas de mon script est déjà construite.
    Et j'ai beau ajouter des caractères dans mon input, l'URL ne change pas (naturellement)

    Voici la modale en question :
    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
    24
    25
    26
    27
    28
    29
    30
    <div class="modal fade" id="confirm-record" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    	<div class="modal-dialog">
    		<div class="modal-content">
     
    			<div class="modal-header">
    				<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
    				<h4 class="modal-title" id="myModalLabel">Confirmation</h4>
    			</div>
     
    			<div class="modal-body">
    				<p>Etes-vous sur de vouloir associer</p>
    				<h2> <?php echo $crossRef; ?></h2>
    				<p>au Sku</p>
    				<h2><span id="recupSku"></span>&nbsp;(<span id="recupEtat"></span>)&nbsp;</h2>
    				<p>Veuillez confirmer</p>
    				<p class="debug-url"></p>
    				<form>
    				    <div class="form-group">
    				        <label for="ean">Voulez vous ajouter un EAN:</label>
    				        <input type="text" class="form-control" id="ean">
    			            </div>
    			     </form>
                            </div>
    			<div class="modal-footer">
    				<button type="button" class="btn btn-default" data-dismiss="modal">Annuler</button>
    				<a class="btn btn-success btn-ok">Valider</a>
    			</div>
    		</div>
    	</div>
    </div>

    et mon script

    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
    <script>
    	$('#confirm-record').on('show.bs.modal', function(e) {
     
    		$('#ean').keyup(function() {
    	             var ean = $('#ean').val();
    		     console.log(ean);
    		});
     
    		$(this).find('.btn-ok').attr('href', ($(e.relatedTarget).data('href') + "&crossRef=<?php echo $crossRef; ?>" + "&id=<?php echo $id; ?>" + "&ean=" + ean));
    		$('.debug-url').html('Delete URL: <strong>' + $(this).find('.btn-ok').attr('href') + '</strong>');
    		$('#recupSku').html(e.relatedTarget.dataset.sku);
    		$('#recupEtat').html(e.relatedTarget.dataset.etat);
     
    	});
    </script>
    Je sais qu'il me faut certainement organiser ce script pour dire "tant que #ean change", l'URL change. Mais mon faible bagage intellectuel m'empêche de trouver le chemin.

    Merci pour l'aide éventuelle que vous pourriez m'apporter.

    Bonne journée

  2. #2
    Membre à l'essai
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2018
    Messages : 10
    Points : 10
    Points
    10
    Par défaut Une solution qui fonctionne bien que j'imagine, un peu barbare.
    Bon, j'ai trouvé ça ...
    Un peu à l'arraché mais ça fonctionne comme je le souhaite.
    Je prendrai tous les conseils qui voudront bien se formuler.
    Merci

    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
    31
    32
    33
    34
    35
    36
    <script>
    		$(document).ready(function() {
    		$.fn.delayKeyup = function(callback, ms){
    			 var timer = 0;
    			 var el = $(this);
    			 $(this).keyup(function(){                   
    				 clearTimeout (timer);
    				 timer = setTimeout(function(){
    					 callback(el)
    						 }, ms);
    			 });
    			 return $(this);
    		 };
     
    		var modal = $('#confirm-record');
     
    			modal.on('show.bs.modal', function(e) {
    			$('#recupSku').html(e.relatedTarget.dataset.sku);
    			$('#recupEtat').html(e.relatedTarget.dataset.etat);
     
    			var ean = $('#ean');
    			ean.val(0);
    			modal.find('.btn-ok').attr('href', ($(e.relatedTarget).data('href') + "&crossId=<?php echo $id; ?>" + "&ean=" + ean.val()  +  "&sku=" + e.relatedTarget.dataset.sku ));
    			$('.debug-url').html('Delete URL: <strong>' + modal.find('.btn-ok').attr('href') + '</strong>');
     
    			ean.delayKeyup(function(el){
     
    				if (ean.val() != '' || ean.val() != 0) {
    					modal.find('.btn-ok').attr('href', ($(e.relatedTarget).data('href') + "&crossId=<?php echo $id; ?>" + "&ean=" + ean.val()  +  "&sku=" + e.relatedTarget.dataset.sku ));
    					$('.debug-url').html('Delete URL: <strong>' + modal.find('.btn-ok').attr('href') + '</strong>');
    				}							
     
    			},300);
    		});
    	});
    </script>

Discussions similaires

  1. Réponses: 10
    Dernier message: 02/01/2007, 10h17
  2. Question sur l'affichage d'une form dynamique?
    Par Jayceblaster dans le forum Delphi
    Réponses: 1
    Dernier message: 18/09/2006, 14h36
  3. Réponses: 4
    Dernier message: 03/05/2006, 13h58
  4. Réponses: 1
    Dernier message: 11/03/2006, 21h19
  5. input ds une table dynamique
    Par mamouna dans le forum ASP
    Réponses: 32
    Dernier message: 30/06/2004, 18h12

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