2017-03-03 13 views
0

私の問題は次のとおりです:私は、スタイル付きチェックボックスと非表示の選択フィールドを含むいくつかの入力フィールドを追加する動的なdivボックスがあります。選択フィールドは、ユーザーが横のチェックボックスをオンにしたときにのみ表示されます。したがって、複数のdivボックス(チェックボックスと非表示の選択フィールドがある)が必要なときは「[+]」をクリックし、入力します。私はすでにいくつかの解決策を試みましたが、どれもうまくいかなかったようです。現在の状況は、入力フィールドを含むこれらのdivを追加できるということですが、selectフィールドonclickチェックボックスの表示/非表示機能では「静的」フィールドのみが機能します。追加されたフィールドには常に選択フィールドが表示されます。ここでは、コードです:表示/非表示追加されたコンテンツ内のチェックボックスのフィールドを選択

// JAVASCRIPT 
$(document).ready(function() { 
    // DYNAMIC RD ADD 
    // ROUNDS 
    // MAXIMUM DIV BOXES ALLOWED 
    var rd_max_fields  = 15; 
    // FIELDS WRAPPER 
    var rd_wrapper   = $(".rd_input_fields_wrap"); 
    // ADD DIV BUTTON ID 
    var rd_add_button  = $(".rd_add_field_button"); 

    // INITIAL DIV BOX COUNT    
    var rd_x = 1; //initlal text box count 
    // ADD DIV CONTAINER 
    $(rd_add_button).click(function(e){ 
     e.preventDefault(); 
     // MAX DIV ALLOWED 
     if(rd_x < rd_max_fields){ 
      // DIV BOX INCREMENT 
      rd_x++; 
      // ADD INPUT TEXT 
      $(rd_wrapper).append('<div><table id="addrd" width="385px" "cellspacing="5px" style="border-left: 1px solid #FFFFFF; border-top: 0; border-right: 1px solid #FFFFFF; border-bottom: 0;"><tr><th colspan="2">&nbsp;</th></tr><tr><th colspan="2"><hr class="white-hr" /></th></tr><tr><th colspan="2">&nbsp;</th></tr></table><a href="#" class="rd_remove_field"><table id="addrd" width="385px" "cellspacing="5px" style="border-left: 1px solid #FFFFFF; border-top: 0; border-right: 1px solid #FFFFFF; border-bottom: 0;"><tr><th align="left">Prüfung entfernen</th><th align="right"><font color="#FFD700">[&ndash;]</font></th></tr></table></a><tr><th colspan="2"><hr /></th></tr></table><table width="385px" "cellspacing="5px" style="border-left: 1px solid #FFFFFF; border-top: 0; border-right: 1px solid #FFFFFF; border-bottom: 0;"><tr><td align="left">Prüfungsnummer<font color="#8E6516">*</font></td><td align="right"><input name="rd_id[]" type="text" style="background: transparent; background-color: #FFFFFF; color: #8E6516; width: 135px;" placeholder="' + rd_x + '" required="required" /></td></tr><tr><td align="left">Sollzeit<font color="#8E6516">*</font></td><td align="right"><input name="rd_id[]" type="text" style="background: transparent; background-color: #FFFFFF; color: #8E6516; width: 135px;" placeholder="Bsp. ' + Math.floor((Math.random() * 7) + 1) + ':' + Math.floor((Math.random() * 49) + 10) + '" required="required" /></td></tr><tr><td align="left">Zwischenzeit?</td><td align="right"><table width="135px" cellspacing="0" style="border: 0;"><tr><td align="left"><div class="checkboxOne"><input type="checkbox" value="yes" id="checkboxOneInput_' + rd_x + '" name="rd_id[]"/><label for="checkboxOneInput_' + rd_x + '"></label></div></td><td align="right"><select name="rd_id[]" id="rd_id_zz" class="zz" placeholder="Anzahl" style="background: transparent; background-color: #FFFFFF; color: #8E6516; width: 75px;" ><option selected="selected" disabled="disabled">Zeiten</option><option value="1">1</option><option value="2">2</option><option value="3">3</option></select></td></tr></table></td></tr></tr></table></div>'); 
     } 
    }); 
    // USER CLICK TO REMOVE DIV 
    $(rd_wrapper).on("click",".rd_remove_field", function(e){ 
    e.preventDefault(); $(this).parent('div').remove(); 
    rd_x--; 
    }); 

    // STATIC CHECKBOX 
    $("#rd_id_zz").hide(); 
    $("#checkboxOneInput").click(function() { 
     if($(this).is(":checked")) { 
      $("#rd_id_zz").prop('disabled', false); 
      $("#rd_id_zz").show(500, 'easeInSine'); 
     } else { 
      $("#rd_id_zz").hide(500, 'easeOutSine'); 
     } 
    }); 
}); 

// HTML 
<div class="rd_input_fields_wrap" id="rd_input_fields_wrap"> 
    <table width="385px" cellspacing="5px" style="border-left: 1px solid #FFFFFF; border-top: 1px solid #FFFFFF; border-right: 1px solid #FFFFFF; border-bottom: 0;"> 
     <tr> 
      <th align="left">Prüfung(en) hinzufügen</th> 
      <th align="right"><a href="#" class="rd_add_field_button" id="add_field"><font color="#FFD700">[+]</font></a></th> 
     </tr> 
     <tr> 
      <th colspan="2"><hr /></th> 
     </tr> 
    </table> 
<div> 
<table id="addrd" width="385px" cellspacing="5px" style="border-left: 1px solid #FFFFFF; border-top: 0; border-right: 1px solid #FFFFFF; border-bottom: 0;"> 
    <tr> 
     <td align="left">Bezeichnung<font color="#8E6516">*</font></td> 
     <td align="right"> 
      <select name="rd_type" id="rd_type" class="input-block-level" placeholder="Bitte auswählen" style="background: transparent; background-color: #FFFFFF; color: #8E6516; width: 135px;" required="required" onclick="disable();" > 
       <option selected='selected' disabled='disabled'>Bitte auswählen</option>"; 
       <option value='GP'>GP</option> 
       <option value='WP'>WP</option> 
       <option value='SP'>SP</option> 
      </select> 
     </td> 
    </tr> 
    <tr> 
     <td align="left">Prüfungsnummer<font color="#8E6516">*</font></td> 
     <td align="right"><input id="rd_id_pn" name="rd_id[]" type="text" style="background: transparent; background-color: #FFFFFF; color: #8E6516; width: 135px;" placeholder="Bsp. 1" required="required" /></td> 
    </tr> 
    <tr> 
     <td align="left">Sollzeit<font color="#8E6516">*</font></td> 
     <td align="right"><input id="rd_id_sz" name="rd_id[]" type="text" style="background: transparent; background-color: #FFFFFF; color: #8E6516; width: 135px;" placeholder="Bsp. 2:30" required="required" /></td> 
    </tr> 
    <tr> 
     <td align="left">Zwischenzeit?</td> 
     <td align="right"> 
      <table width="135px" cellspacing="0" style="border: 0;"> 
       <tr> 
        <td align="left"> 
         <div class="checkboxOne"> 
          <input type="checkbox" value="yes" id="checkboxOneInput" name="rd_id[]"/> 
          <label for="checkboxOneInput"></label> 
         </div> 
        </td> 
        <td align="right"> 
         <select name="rd_id[]" id="rd_id_zz" class="zz" placeholder="Anzahl" style="background: transparent; background-color: #FFFFFF; color: #8E6516; width: 75px;" > 
          <option selected='selected' disabled='disabled'>Zeiten</option> 
          <option value='1'>1</option> 
          <option value='2'>2</option> 
          <option value='3'>3</option> 
         </select> 
        </td> 
       </tr> 
      </table> 
     </td> 
    </tr> 
</table> 

そして、ここでそれにフィドル*です:

Show/Hide Select Field on Checkbox within Appended-Content

注:選択フィールドがクリック上)(.hideように見えるdoes'nt 。どのように私は、動的に表示/非表示のonclickチェックボックス(checkswitch)と入力フィールドの別のセットを追加する組み合わせることができます。 質問私のページでそれが.SHOWで正常に動作します()と.hide()

EDIT ?現時点では "静的な"ものだけが動作します(チェックスイッチをクリックすると、選択フィールドが表示されます(クリックすると再び消える))。

+0

を試してみてください「だけ"static"はselectフィールドonclickチェックボックスを表示/非表示にします。追加されたフィールドは常に " 詳細を説明できますか? – Devsullo

+0

私はすでにそこにあるdivのように、追加されたもの([+]以上)を必要とします。 – montreal

+0

ああ、あなたはそれを複製したいですか? – Devsullo

答えて

0

私はこのビルドを理解できるようにお手伝いをします

https://jsfiddle.net/devsullo/9a63omoh/8/

アドバイス:生成されたHTMLコードに静的id -sを使用していない

EDIT:このhttps://jsfiddle.net/devsullo/9a63omoh/11/

+0

ちまた。トグルする部分は単なる副問題でした。問題は、この入力フィールドの別のセットを追加すると、チェックボタン(checkswitch)をクリックするまで選択オプションが隠されている必要があるということです。しかし、私はあなたの機能をトグルで実装しました:) – montreal

+0

これはまさに私が望むものですが、チェックボックスを最初にチェックしてからselectフィールドを表示する必要があります。もう一度やり直してください:あなたはチェックを外して、選択フィールドが消えて – montreal

+0

が既にチェックされていない場合は、cssとthats all .zz {display:none; } – Devsullo

関連する問題