recherche

Maison  >  Questions et réponses  >  le corps du texte

Essayez de mettre le bouton radio à l'intérieur d'un bouton radio

En gros, je suis mon post et si je dois afficher un bouton radio et un div à l'intérieur, la solution suivante fonctionne très bien :

$(".tier1-options :radio").on("change", function (e) {
  //remove shown class from all tier2 options and clear values from all form elements inside it
  $('.tier2-options')
    .removeClass('shown')
    .find('input, select').val('')
  
  //show the related tier2 options
  $(this)
    .parents('.tier1-options')
    .find('.tier2-options')
    .addClass('shown')
});
.tier2-options {
  display: none;
  margin-left: 1rem;
  padding: 1rem;
  background-color: #EEE;
}

.shown{
  display: block;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<h5>Select one of the checkboxes:</h5>

<div class='tier1-options'>
  <label>
    <input name="useroption" type="radio" value="changeLocation">
    Change Location
  </label>

  <div class="tier2-options">
    <select name="availableMarkAsFullLocations">
      <option value="-">--Please Select--</option>
      <option value="3">BOX#3</option>
      <option value="6">FREEZER#1</option>
      <option value="8">FREEZER#2</option>
      <option value="19">BOX#9</option>
      <option value="20">QBUILDING</option>
    </select>
  </div>
</div>

<div class="tier1-options">
  <label>
    <input name="useroption" type="radio" value="updateLocation">
    Update Location
  </label>

  <div class="tier2-options">
    <select name="availableUpdateLocations">
      <option value="-">--Please Select--</option>
      <option value="3">BOX#3</option>
      <option value="6">FREEZER#1</option>
      <option value="8">FREEZER#2</option>
      <option value="19">BOX#9</option>
    </select>
  </div>
</div>


<div class="tier1-options">
  <label>
    <input name="useroption" type="radio" value="retireLocation">
    Retire
  </label>

  <div class="tier2-options">
    <select name="availableRetireLocations">
       <option value="-">--Please Select--</option>
       <option value="3">BOX#3</option>
       <option value="6">FREEZER#1</option>
       <option value="8">FREEZER#2</option>
       <option value="19">BOX#9</option>
       <option value="20">QBUILDING</option>
    </select>
  </div>
</div>

Mais lorsque j'essaie d'ajouter plusieurs boutons radio, ce code ne fonctionne pas avec l'option Contenu mobile. En gros, lorsque je clique sur Tier I Move ou Tier II Move移动内容选项。基本上,当我点击Tier I MoveTier II Move

时,subtier2-options, subtier2-options n'apparaît pas

$(".tier1-options :radio").on("change", function (e) {
      //remove shown class from all tier2 options and clear values from all form elements inside it
      $('.tier2-options')
        .removeClass('shown')
        .find('input, select').val('')
      
      //show the related tier2 options
      $(this)
        .parents('.tier1-options')
        .find('.tier2-options')
        .addClass('shown')
    });
    
    $(".subtier1-options :radio").on("change", function (e) {
      //remove shown class from all tier2 options and clear values from all form elements inside it
      $('.subtier2-options')
        .removeClass('shown')
        .find('input, select').val('')
      
      //show the related tier2 options
      $(this)
        .parents('.subtier1-options')
        .find('.subtier2-options')
        .addClass('shown')
    });
    
    
    .tier2-options {
      display: none;
      margin-left: 1rem;
      padding: 1rem;
      background-color: #EEE;
    }

    .shown{
      display: block;
    }
    
    .subtier2-options {
      display: none;
      margin-left: 1rem;
      padding: 1rem;
      background-color: #EEE;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

    <h5>Select one of the checkboxes:</h5>

    <div class='tier1-options'>
      <label>
        <input name="useroption" type="radio" value="changeLocation">
        Change Location
      </label>

      <div class="tier2-options">
        <select name="availableMarkAsFullLocations">
          <option value="-">--Please Select--</option>
          <option value="3">BOX#3</option>
          <option value="6">FREEZER#1</option>
          <option value="8">FREEZER#2</option>
          <option value="19">BOX#9</option>
          <option value="20">QBUILDING</option>
        </select>
      </div>
    </div>

    <div class="tier1-options">
      <label>
        <input name="useroption" type="radio" value="updateLocation">
        Update Location
      </label>

      <div class="tier2-options">
        <select name="availableUpdateLocations">
          <option value="-">--Please Select--</option>
          <option value="3">BOX#3</option>
          <option value="6">FREEZER#1</option>
          <option value="8">FREEZER#2</option>
          <option value="19">BOX#9</option>
        </select>
      </div>
    </div>


    <div class="tier1-options">
      <label>
        <input name="useroption" type="radio" value="retireLocation">
        Retire
      </label>

      <div class="tier2-options">
        <select name="availableRetireLocations">
           <option value="-">--Please Select--</option>
           <option value="3">BOX#3</option>
           <option value="6">FREEZER#1</option>
           <option value="8">FREEZER#2</option>
           <option value="19">BOX#9</option>
           <option value="20">QBUILDING</option>
        </select>
      </div>
    </div>

    <div class='tier1-options'>
      <label>
        <input name="useroption" type="radio" value="moveContents">
        Move Contents
      </label>

        <div class="tier2-options">
             <div class='subtier1-options'>
                 <label>
                  <input name="useroption" type="radio" value="moveContentsTierI">
                  Tier I move
                </label>

                 <div class="subtier2-options">
                     <select name="availableTierILocations">
                     <option value="-">--Please Select--</option>
                     <option value="3">BOX#3</option>
                     <option value="6">FREEZER#1</option>
                     <option value="8">FREEZER#2</option>
                     <option value="19">BOX#9</option>
                     <option value="20">QBUILDING</option>
                  </select>
                 
                 </div>
                
             
             </div> <!--end of <div class='subtier1-options'> -->
             
             <div class='subtier1-options'>
                 <label>
                  <input name="useroption" type="radio" value="moveContentsTierII">
                  Tier II move
                </label>

                 <div class="subtier2-options">
                     <select name="availableTierIILocations">
                     <option value="-">--Please Select--</option>
                     <option value="3">BOX#3</option>
                     <option value="6">FREEZER#1</option>
                     <option value="8">FREEZER#2</option>
                     <option value="19">BOX#9</option>
                     <option value="20">QBUILDING</option>
                  </select>
                 
                 </div>
                
             
             </div> <!--end of <div class='subtier1-options'> -->
             
             
        </div>
    </div>

P粉235202573P粉235202573465 Il y a quelques jours563

répondre à tous(1)je répondrai

  • P粉953231781

    P粉9532317812023-09-12 17:54:22

    Lorsque vous utilisez des classes dans des fichiers CSS, les classes seront appliquées dans l'ordre dans lequel elles ont été écrites. Parce que shown 类位于 subtier2-options 类之上,因此它首先被应用。因此,当应用 subtier2-options 时,显示设置为 block,然后更改为 none.

    Il vous suffit de changer l'ordre des classes en CSS comme indiqué ci-dessous et cela fonctionnera.

    $(".tier1-options :radio").on("change", function (e) {
          //remove shown class from all tier2 options and clear values from all form elements inside it
          $('.tier2-options')
            .removeClass('shown')
            .find('input, select').val('')
          
          //show the related tier2 options
          $(this)
            .parents('.tier1-options')
            .find('.tier2-options')
            .addClass('shown')
        });
        
        $(".subtier1-options :radio").on("change", function (e) {
          //remove shown class from all tier2 options and clear values from all form elements inside it
          $('.subtier2-options')
            .removeClass('shown')
            .find('input, select').val('')
          
          //show the related tier2 options
          $(this)
            .parents('.subtier1-options')
            .find('.subtier2-options')
            .addClass('shown')
        });
        
        
        .tier2-options {
          display: none;
          margin-left: 1rem;
          padding: 1rem;
          background-color: #EEE;
        }
        
        .subtier2-options {
          display: none;
          margin-left: 1rem;
          padding: 1rem;
          background-color: #EEE;
        }
    
        .shown{
          display: block;
        }
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    
        <h5>Select one of the checkboxes:</h5>
    
        <div class='tier1-options'>
          <label>
            <input name="useroption" type="radio" value="changeLocation">
            Change Location
          </label>
    
          <div class="tier2-options">
            <select name="availableMarkAsFullLocations">
              <option value="-">--Please Select--</option>
              <option value="3">BOX#3</option>
              <option value="6">FREEZER#1</option>
              <option value="8">FREEZER#2</option>
              <option value="19">BOX#9</option>
              <option value="20">QBUILDING</option>
            </select>
          </div>
        </div>
    
        <div class="tier1-options">
          <label>
            <input name="useroption" type="radio" value="updateLocation">
            Update Location
          </label>
    
          <div class="tier2-options">
            <select name="availableUpdateLocations">
              <option value="-">--Please Select--</option>
              <option value="3">BOX#3</option>
              <option value="6">FREEZER#1</option>
              <option value="8">FREEZER#2</option>
              <option value="19">BOX#9</option>
            </select>
          </div>
        </div>
    
    
        <div class="tier1-options">
          <label>
            <input name="useroption" type="radio" value="retireLocation">
            Retire
          </label>
    
          <div class="tier2-options">
            <select name="availableRetireLocations">
               <option value="-">--Please Select--</option>
               <option value="3">BOX#3</option>
               <option value="6">FREEZER#1</option>
               <option value="8">FREEZER#2</option>
               <option value="19">BOX#9</option>
               <option value="20">QBUILDING</option>
            </select>
          </div>
        </div>
    
        <div class='tier1-options'>
          <label>
            <input name="useroption" type="radio" value="moveContents">
            Move Contents
          </label>
    
            <div class="tier2-options">
                 <div class='subtier1-options'>
                     <label>
                      <input name="useroption" type="radio" value="moveContentsTierI">
                      Tier I move
                    </label>
    
                     <div class="subtier2-options">
                         <select name="availableTierILocations">
                         <option value="-">--Please Select--</option>
                         <option value="3">BOX#3</option>
                         <option value="6">FREEZER#1</option>
                         <option value="8">FREEZER#2</option>
                         <option value="19">BOX#9</option>
                         <option value="20">QBUILDING</option>
                      </select>
                     
                     </div>
                    
                 
                 </div> <!--end of <div class='subtier1-options'> -->
                 
                 <div class='subtier1-options'>
                     <label>
                      <input name="useroption" type="radio" value="moveContentsTierII">
                      Tier II move
                    </label>
    
                     <div class="subtier2-options">
                         <select name="availableTierIILocations">
                         <option value="-">--Please Select--</option>
                         <option value="3">BOX#3</option>
                         <option value="6">FREEZER#1</option>
                         <option value="8">FREEZER#2</option>
                         <option value="19">BOX#9</option>
                         <option value="20">QBUILDING</option>
                      </select>
                     
                     </div>
                    
                 
                 </div> <!--end of <div class='subtier1-options'> -->
                 
                 
            </div>
        </div>

    répondre
    0
  • Annulerrépondre