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

Ruby Discussion :

j.query, $("#codmod").on('change', function() ne marche plus


Sujet :

Ruby

  1. #1
    WBO
    WBO est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 78
    Points : 57
    Points
    57
    Par défaut j.query, $("#codmod").on('change', function() ne marche plus
    Bonjour,
    j'utilise : Rails 3.2.9

    dans mon appli, j'ai 3 champs qui utilise du j.query.
    1er test :
    quand je change la donnée du 1er (client), le ".on('change" fonctionne bien.
    quand je change la donnée du 2ième (activité), lle ".on('change" fonctionne bien.
    quand je change la donnée du 3ième (codmod), le ".on('change" ne fonctionne plus.
    cela fonctionne par contre à nouveau si je ré-affiche ma page.

    2ième test :
    quand je change la donnée du 2ième(activité), le ".on('change" fonctionne bien.
    quand je change la donnée du 3ième (modèle), le ".on('change" ne fonctionne plus.
    cela fonctionne par contre à nouveeau si je ré-affiche ma page.

    je ne comprend vraiment pas pourquoi, surtout que le code est identique, alors si quelqu'un à une idée ?
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    
    fichier application.js
    $(document).ready(function() {
    
      $("#searches_codcli").on('change', function(){  
    		var datas = "codcli="+$("#searches_codcli").val();	
        $.ajax({
                type: "GET",
                url: "change_client",
                data: datas,
                dataType: "script",
                success: function(){
                                    $.unblockUI();
                                  }
              });
        return false;
      });
      
      
      $("#searches_codact").on('change', function(){  
    		var datas = "codact="+$("#searches_codact option:selected").val();	
        $.ajax({
                type: "GET",
                url: "change_activite",
                data: datas,
                dataType: "script",
                success: function(){
                                    $.unblockUI();
                                  }
              });
        return false;
      });
      
      
      $("#codmod").on('change', function(){  
      alert ('hello');
        var datas = "codmod="+$("#codmod option:selected").val();	
        $.ajax({
                type: "GET",
                url: "change_modele",
                data: datas,
                dataType: "script",
                success: function(){
                                    $.unblockUI();
                                  }
              });
        return false;
      });
    
    
    
    });

    fichier change_client.js.erb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $('#nomcli').text("<%= session[:nomcli] %>");
    $('#modele').html("<%= escape_javascript(render :partial => 'modele') %>");
    $('#detail').html("<%= escape_javascript(render :partial => 'detail') %>");
    fichier change_activite.js.erb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $('#modele').html("<%= escape_javascript(render :partial => 'modele') %>");
    $('#detail').html("<%= escape_javascript(render :partial => 'detail') %>");
    fichier change_modele.js.erb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $('#detail').html("<%= escape_javascript(render :partial => 'detail') %>");


    dernières questions :
    je ne comprend pas le code ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        $.ajax({
                type: "GET",
                url: "change_modele",
                data: datas,
                dataType: "script",
                success: function(){
                                    $.unblockUI();   ???????
                                  }
              });
        return false;     ??????? pourquoi pas un return true
    un grand merci si quelqu'un peut m'aider.
    Images attachées Images attachées  

  2. #2
    WBO
    WBO est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 78
    Points : 57
    Points
    57
    Par défaut
    quand je dis le ".on('change" ne fonctionne plus.
    cela veut dire que rien ne se déclenche, je n'ai pas l'alerte : fichier index.html.erb
    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
    <%= form_for :searches, :url => 'searches/recherche' do |f| %>
     
     
      <div id="header">
        <div id="leftHeader">
          <%= I18n.t('searches.selection') %>
        </div>
      </div>
     
      <section id="critere">
     
        <article id="client">
          <%= I18n.t('searches.client') %> <%= f.text_field :codcli, :value => session[:codcli] %> <span id="nomcli"> <%= session[:nomcli] %></span> 
        </article>
     
     
        <article id="activite">
          <%= I18n.t('searches.activite') %> : <%= f.select :codact, options_for_select({I18n.t('searches.bt_choixS') => "S", I18n.t('searches.bt_choixM') => "M"} , session[:codact])%>
        </article> 
     
        <%= render :partial => 'modele' %>
     
        <article id="art">
          <%= I18n.t('searches.article') %> <%= f.text_field :codart, :value => session[:codart] %>
        </article>
     
        <%= render :partial => 'detail' %>
     
        <article id="quantite">
          <%= I18n.t('searches.quantite') %> <%= f.text_field :qtelg, :value => session[:qtelg] %>
        </article>
     
      </section>
     
    <% end %>

  3. #3
    Membre actif Avatar de rivsc
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2008
    Messages : 213
    Points : 275
    Points
    275
    Par défaut
    Le "return false;" permet généralement d'éviter le comportement par défaut du navigateur. Pour le coup ici tu devrais pouvoir mettre true.
    Sinon tu as une erreur javascript dans la console js ? (Teste sur chrome => F12 => Onglet "Console" => Tu verras s'il y a des erreurs)

    Tu trouveras plus de réponse sur le forum section jQuery, ce n'est pas du ruby. d'ailleurs plutôt que d'afficher le index.html.erb affiche le résultat interprété : html/js pur.

  4. #4
    WBO
    WBO est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 78
    Points : 57
    Points
    57
    Par défaut
    solution => ajouter le script au niveau de la page (mis en double dans certain des cas à cause du render).

+ Répondre à la discussion
Cette discussion est résolue.

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