2017-05-29 1 views
-2

Impossible de faire fonctionner la section de la case à cocher. Le .hide() fonctionne bien, mais le reste refuse de le montrer à nouveau.Masquage/affichage du contenu du cours si la case est cochée

Autres versions du même code gâcher d'autres morceaux de script sur la page, et bascule est un pas aller en raison du temps de chargement (si un visiteur clique trop tôt, il finit par inversée!)

Essentiellement, Tout ce que je cherche, c'est cacher le contenu si la case est cochée, et le montrer à nouveau s'il n'est pas coché.

jQuery(document).ready(function($) { 

    $('.sponsor_table').hide(); 
    $('.sponsor_address').hide(); 
    $('input[type="checkbox"]').click(function(){ 
     if($('input[name="remain_anonymous"]:checked')) { 
      $('.sponsor_name').hide(); 
      $('.sponsor_logo').hide(); 
      $('.sponsor_website').hide(); 
     } else { 
      $('.sponsor_name').show(); 
      $('.sponsor_logo').show(); 
      $('.sponsor_website').show(); 
     } 
    }); 
    $('input[type="radio"]').click(function(){ 
     if($('input[name="cb_sponsor_attendance"]:checked').val() == "Yes"){ 
      $('.sponsor_table').fadeIn('slow'); 
      $('.sponsor_address').hide(); 
     } 
     else if($('input[name="cb_sponsor_attendance"]:checked').val() == "No"){ 
      $('.sponsor_address').fadeIn('slow'); 
      $('.sponsor_table').hide(); 
     } 
    }); 

}); 

Le code HTML complet de la section de case à cocher est:

<div id="remain_anonymous-wrap" class="form-row anonymous_sponsor">  <label class="give-label" for="ffm-remain_anonymous"> 
     Make this donation anonymous?      <span class="give-tooltip give-icon give-icon-question" 
       data-tooltip="Details will not be shared on the site, or at the event"></span> 
       </label> 
      <span data-required="no" data-type="checkbox"></span> 

    <span class="ffm-fields"> 

       <label> 
        <input type="checkbox" name="remain_anonymous[]" 
          value="Yes, please don&#039;t share my identity" /> 
        Yes, please don't share my identity     </label> 
          </span> 


    </div><div id="cb_sponsor_name-wrap" class="form-row sponsor_name">  <label class="give-label" for="ffm-cb_sponsor_name"> 
     Your Name/Business Name      <span class="give-tooltip give-icon give-icon-question" 
       data-tooltip="This will be shared both online and on the table at the gala."></span> 
       </label> 
      <input class="textfield" 
      id="ffm-cb_sponsor_name" type="text" 
      data-required="no" 
      data-type="text" name="cb_sponsor_name" 
      placeholder="" value="" 
      size=" 100" /> 

    </div><div id="cb_sponsor_logo-wrap" class="form-row sponsor_logo">  <label class="give-label" for="ffm-cb_sponsor_logo"> 
     Photo/Logo     </label> 

    <div id="ffm-cb_sponsor_logo-upload-container"> 
     <div class="ffm-attachment-upload-filelist"> 
      <a id="ffm-cb_sponsor_logo-pickfiles" class="button file-selector" 
       href="#">Select File(s)</a> 

      <span class="ffm-file-validation" data-required="no" data-type="file"></span> 
      <ul class="ffm-attachment-list give-thumbnails"> 
           </ul> 
     </div> 
    </div><!-- .container --> 


    <script type="text/javascript"> 
     jQuery(function ($) { 
      new Give_FFM_Uploader('ffm-cb_sponsor_logo-pickfiles', 'ffm-cb_sponsor_logo-upload-container', 1, 'cb_sponsor_logo', 'jpg,jpeg,gif,png,bmp,', 2048); 
     }); 
    </script> 
    </div><div id="cb_sponsor_website-wrap" class="form-row sponsor_website">  <label class="give-label" for="ffm-cb_sponsor_website"> 
     Website     </label> 

    <input id="ffm-cb_sponsor_website" type="url" class="give-url" 
      data-required="no" data-type="text"    name="cb_sponsor_website" 
      placeholder="" value="" 
      size="100"/> 

    </div> 
+2

S'il vous plaît nous montrer la 'html' aussi. – Ionut

+1

Copie possible de [Afficher/Cacher avec Checkbox en utilisant jQuery] (https://stackoverflow.com/questions/15766875/show-hide-with-checkbox-using-jquery) – urbz

+0

@urbz - Il y a une autre case à cocher sur la page, mais placé là par un plugin, pas par moi. Je n'ai aucune idée du code qu'ils utilisent pour cela, et tout le HTML est généré par le plugin. J'ai déjà essayé les suggestions sur une demi-douzaine d'autres articles ici, je ne pense pas que je devrais être marqué pour la duplication si j'ai déjà essayé tout ce que je peux penser/trouver? :/ –

Répondre

0

Essayez ce ci-dessous le code et vérifier:

$('input[type="checkbox"]').click(function() { 
 
     $('.sponsor_name,.sponsor_website,.sponsor_logo').show(); 
 
     if ($(this).is(':checked')) { 
 
     $('.sponsor_name,.sponsor_website,.sponsor_logo').hide(); 
 
     } 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="remain_anonymous-wrap" class="form-row anonymous_sponsor">  <label class="give-label" for="ffm-remain_anonymous"> 
 
     Make this donation anonymous?      <span class="give-tooltip give-icon give-icon-question" 
 
       data-tooltip="Details will not be shared on the site, or at the event"></span> 
 
       </label> 
 
      <span data-required="no" data-type="checkbox"></span> 
 

 
    <span class="ffm-fields"> 
 

 
       <label> 
 
        <input type="checkbox" name="remain_anonymous[]" 
 
          value="Yes, please don&#039;t share my identity" /> 
 
        Yes, please don't share my identity     </label> 
 
          </span> 
 

 

 
    </div><div id="cb_sponsor_name-wrap" class="form-row sponsor_name">  <label class="give-label" for="ffm-cb_sponsor_name"> 
 
     Your Name/Business Name      <span class="give-tooltip give-icon give-icon-question" 
 
       data-tooltip="This will be shared both online and on the table at the gala."></span> 
 
       </label> 
 
      <input class="textfield" 
 
      id="ffm-cb_sponsor_name" type="text" 
 
      data-required="no" 
 
      data-type="text" name="cb_sponsor_name" 
 
      placeholder="" value="" 
 
      size=" 100" /> 
 

 
    </div><div id="cb_sponsor_logo-wrap" class="form-row sponsor_logo">  <label class="give-label" for="ffm-cb_sponsor_logo"> 
 
     Photo/Logo     </label> 
 

 
    <div id="ffm-cb_sponsor_logo-upload-container"> 
 
     <div class="ffm-attachment-upload-filelist"> 
 
      <a id="ffm-cb_sponsor_logo-pickfiles" class="button file-selector" 
 
       href="#">Select File(s)</a> 
 

 
      <span class="ffm-file-validation" data-required="no" data-type="file"></span> 
 
      <ul class="ffm-attachment-list give-thumbnails"> 
 
           </ul> 
 
     </div> 
 
    </div><!-- .container --> 
 

 
    </div><div id="cb_sponsor_website-wrap" class="form-row sponsor_website">  <label class="give-label" for="ffm-cb_sponsor_website"> 
 
     Website     </label> 
 

 
    <input id="ffm-cb_sponsor_website" type="url" class="give-url" 
 
      data-required="no" data-type="text"    name="cb_sponsor_website" 
 
      placeholder="" value="" 
 
      size="100"/> 
 

 
    </div>

+0

Nope :(Ne fait rien du tout maintenant.Cliquer sur n'a aucun effet –

+0

Mis à jour.J'espère que cela aide –

+0

Hélas, le script est déjà inclus dans la page et de travailler pour d'autres éléments.Tous le HTML est généré par un WordPress plugin.Je n'ai aucun contrôle sur la sortie HTML, et ne peut pas coller le tout parce que c'est trop long ... L'adresse Web par exemple est: [link] (https://project365.site/support/sydney-2017-table -2 /) –

0

essayer d'utiliser cette fonction dans votre checkbox

$("input[name=anonymous_sponsor]").change(function() { 
     if(this.checked) { 
     $('.sponsor_name').hide(); 
     $('.sponsor_logo').hide(); 
     $('.sponsor_website').hide(); 
    } else { 
     $('.sponsor_name').show(); 
     $('.sponsor_logo').show(); 
     $('.sponsor_website').show(); 
    } 

    }); 
+0

Essayé une version de cela plus tôt.Ne fait rien du tout :( –

+0

essayez ma mise à jour ans @JonWatson – Jay

+0

Hélas, ne fait toujours rien ... cocher ou décocher la case n'a aucun effet –

0

En supposant que vous avez un champ d'entrée avec un nom « your_input_field_name » <input name="your_input_field_name" type="checkbox" > que vous voulez écouter un changement

$('input[name="your_input_field_name"]').change(function(){ 
    if($(this).is(':checked')){ 
    //if ture 
    }else{ 
    //if false 
    } 
}); 
+0

:(Non '\t \t \t \t \t \t $ (' entrée [name = "remain_anonymous"] ') modifier (function() { \t \t \t \t \t \t \t if ($ (this) .est (.': coché la case ')) { \t \t \t \t \t \t \t $ (' SPONSOR_NAME ') cache(). \t \t \t \t \t $ (.. sponsor_logo') hide();. \t \t \t \t \t $ ('. Sponsor_website'). Hide(); \t \t \t \t \t \t \t} else { \t \t \t \t \t \t \t $ ('SPONSOR_NAME.') Show(). \t \t \t \t \t $ ('. Sponsor_logo'). Show(); \t \t \t \t \t $ ('. Sponsor_website'). Show(); \t \t \t \t \t \t} \t \t \t \t \t \t}); » ne fait rien du tout. –

+0

Bah! nom d'entrée a dû inclure les crochets! Quelle?! Le changer pour rester_anonymous [] semble avoir fait l'affaire! –

+0

Vous avez utilisé un tableau d'entrée. Y a-t-il plusieurs instances de remain_anonymous? sinon se débarrasser des crochets à la fin du nom – Lasithds

0

Résolu:

Apparemment, le nom de l'entrée devait correspondre au code HTML exactement pour cette pour fonctionner correctement, y compris les crochets qui ne sont pas répertoriés dans la partie arrière de WordPress (capture d'écran ci-dessous).

a back_end

Modification du nom d'entrée: remain_anonymous [] semble avoir fait le tour. Bien qu'il n'y ait qu'une seule instance de remain_anonymous sur la page, cela ne fonctionnera pas sans elles.

Je ne sais pas pourquoi, mais ça marche.

Merci à tous pour votre aide, et merci à ionut de m'avoir suggéré de poster le code HTML. La première fois que je l'ai regardé ... doh

0

Essayez comme ceci, j'ai modifié votre code.

jQuery(document).ready(function($) { 
 

 
    $('.sponsor_table').hide(); 
 
    $('.sponsor_address').hide(); 
 
    $('input[name="remain_anonymous[]"]').click(function(evt){ 
 
     if($(evt.currentTarget).is(':checked')) { 
 
      $('.sponsor_name').hide(); 
 
      $('.sponsor_logo').hide(); 
 
      $('.sponsor_website').hide(); 
 
     } else { 
 
      $('.sponsor_name').show(); 
 
      $('.sponsor_logo').show(); 
 
      $('.sponsor_website').show(); 
 
     } 
 
    }); 
 
    $('input[type="radio"]').click(function(){ 
 
     if($('input[name="cb_sponsor_attendance"]:checked').val() == "Yes"){ 
 
      $('.sponsor_table').fadeIn('slow'); 
 
      $('.sponsor_address').hide(); 
 
     } 
 
     else if($('input[name="cb_sponsor_attendance"]:checked').val() == "No"){ 
 
      $('.sponsor_address').fadeIn('slow'); 
 
      $('.sponsor_table').hide(); 
 
     } 
 
    }); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="remain_anonymous-wrap" class="form-row anonymous_sponsor">  <label class="give-label" for="ffm-remain_anonymous"> 
 
     Make this donation anonymous?      <span class="give-tooltip give-icon give-icon-question" 
 
       data-tooltip="Details will not be shared on the site, or at the event"></span> 
 
       </label> 
 
      <span data-required="no" data-type="checkbox"></span> 
 

 
    <span class="ffm-fields"> 
 

 
       <label> 
 
        <input type="checkbox" name="remain_anonymous[]" 
 
          value="Yes, please don&#039;t share my identity" /> 
 
        Yes, please don't share my identity     </label> 
 
          </span> 
 

 

 
    </div><div id="cb_sponsor_name-wrap" class="form-row sponsor_name">  <label class="give-label" for="ffm-cb_sponsor_name"> 
 
     Your Name/Business Name      <span class="give-tooltip give-icon give-icon-question" 
 
       data-tooltip="This will be shared both online and on the table at the gala."></span> 
 
       </label> 
 
      <input class="textfield" 
 
      id="ffm-cb_sponsor_name" type="text" 
 
      data-required="no" 
 
      data-type="text" name="cb_sponsor_name" 
 
      placeholder="" value="" 
 
      size=" 100" /> 
 

 
    </div><div id="cb_sponsor_logo-wrap" class="form-row sponsor_logo">  <label class="give-label" for="ffm-cb_sponsor_logo"> 
 
     Photo/Logo     </label> 
 

 
    <div id="ffm-cb_sponsor_logo-upload-container"> 
 
     <div class="ffm-attachment-upload-filelist"> 
 
      <a id="ffm-cb_sponsor_logo-pickfiles" class="button file-selector" 
 
       href="#">Select File(s)</a> 
 

 
      <span class="ffm-file-validation" data-required="no" data-type="file"></span> 
 
      <ul class="ffm-attachment-list give-thumbnails"> 
 
           </ul> 
 
     </div> 
 
    </div><!-- .container --> 
 

 

 
    <script type="text/javascript"> 
 
     jQuery(function ($) { 
 
      //new Give_FFM_Uploader('ffm-cb_sponsor_logo-pickfiles', 'ffm-cb_sponsor_logo-upload-container', 1, 'cb_sponsor_logo', 'jpg,jpeg,gif,png,bmp,', 2048); 
 
     }); 
 
    </script> 
 
    </div><div id="cb_sponsor_website-wrap" class="form-row sponsor_website">  <label class="give-label" for="ffm-cb_sponsor_website"> 
 
     Website     </label> 
 

 
    <input id="ffm-cb_sponsor_website" type="url" class="give-url" 
 
      data-required="no" data-type="text"    name="cb_sponsor_website" 
 
      placeholder="" value="" 
 
      size="100"/> 
 

 
    </div>

+0

Fonctionne, mais affecte toutes les cases à cocher sur la page. Chaque fois que l'un d'eux est cliqué, vous obtenez le comportement show/hide. Donc, si vous avez coché "remain_anonymous" et décidez ensuite que vous souhaitez couvrir les frais de transaction ou accepter les termes et conditions que vous obtenez les champs cachés apparaissent à nouveau. –

+0

J'ai changé jquery selector en name = "remain_anonymous []" que vous utilisez dans le html. J'espère que cela pourra aider. pls voir réponse modifier – masif