2015-05-05 29 views
0

我想檢查我用jquery創建的輸入字段。如果按鈕 「einen Schritthinzufügen」 的jquery有人按將創建成格all_steps,這structur:用jQuery檢查動態公式

<div class="step"> 
 
    <div class="header_step">Schritt '+ (x + 1) +' des Tutorial\'s</div> 
 
    <div class="body_step"> 
 
    <a class="create_tutorial_a">Titel des Schrittes</a> 
 
    <input name="input_title_name'+x+'" class="create_tutorial_input" /> 
 
    <br> 
 
    <a class="create_tutorial_a">Bild</a><input type="file" /> 
 
    <br><br> 
 
    <a class="create_tutorial_a_full_width">Beschreibung des Schrittes</a> 
 
    <br> 
 
    <textarea class="create_tutorial_textarea" name="input_description_name'+x+'"> 
 
    </textarea> 
 
    </div> 
 
</div>

這裏是我的jQuery代碼:

$(document).ready(function() { 
 
    var max_fields  = 10; //maximum input boxes allowed 
 
    var wrapper   = $(".all_steps"); //Fields wrapper 
 
    var add_button  = $("#add_step"); //Add button ID 
 
    var remove_step  = $("#remove_step"); 
 
    
 
    var x = 0; //initlal text box count 
 
    $(add_button).click(function(){ //on add input button click 
 
     if(x < max_fields){ //max input box allowed 
 
      $(wrapper).append('<div class="step"><div class="header_step">Schritt '+ (x + 1) +' des Tutorial\'s</div><div class="body_step"><a class="create_tutorial_a">Titel des Schrittes</a><input name="input_title_name'+x+'" class="create_tutorial_input" /><br><a class="create_tutorial_a">Bild</a><input type="file" /><br><br><a class="create_tutorial_a_full_width">Beschreibung des Schrittes</a><br><textarea class="create_tutorial_textarea" name="input_description_name'+x+'"></textarea></div>'); 
 
      x++; //text box increment 
 
     } 
 
    }); 
 
    
 
    $(remove_step).click(function(){ //user click on remove text 
 
     $('.all_steps .step:last').remove(); 
 
     x--; 
 
    }); 
 
    
 
    $(submit).click(function(){ 
 
     
 
    }); 
 
});

這裏是我的html代碼:

<section> 
 
    <article> 
 
     <div class="step"> 
 
      <div class="header_step">Erstelle dein eigenes Tutorial</div> 
 
      <div class="body_step">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</div> 
 
     </div> 
 
     <form method="post" action="index.php?content=create_tutorial"> 
 
     <div class="step"> 
 
      <div class="header_step">Allgemeines zum Tutorial</div> 
 
      <div class="body_step"> 
 
       <a class="create_tutorial_a">Titel des Tutorial's</a><input class="create_tutorial_input"/> 
 
       <br> 
 
       <a class="create_tutorial_a">Autor des Tutorial's</a><input class="create_tutorial_input"/> 
 
       <br><br> 
 
       <a class="create_tutorial_a_full_width">Beschreibung des Schrittes</a> 
 
       <br> 
 
       <textarea class="create_tutorial_textarea"></textarea> 
 
      </div> 
 
     </div> 
 
     
 
     <div class="all_steps"> 
 
      
 
     </div> 
 
     
 
     <div class="step"> 
 
      <div class="body_step"> 
 
       <input class="create_button" type="button" id="submit" value="Erstellen"/> 
 
       <input type="button" class="create_button" id="add_step" value="Schritt hinzufügen"/> 
 
       <input type="button" class="create_button" id="remove_step" value="Schritt entfernen"/> 
 
      </div> 
 
     </div> 
 
     </form> 
 
     
 
    </article> 
 
    <div class="clearBoth"></div> 
 
</section>

現在我要檢查所有的領域,即是後使用jQuery創建「ERSTELLEN」按鈕被按下。我怎樣才能引用動態創建的輸入字段來檢查它們?

MyPage

+0

創建一個空對象,例如'var inputs = {};'。然後,在創建inpus時,將它們保存到此對象中,以便稍後在提交時將其用作參考。你可以循環遍歷每個循環的輸入對象,並通過.val()獲取值。() –

+0

如何通過對象的索引? – Name

+0

如果使用.push(某物)添加值,則不需要知道索引。稍後提交時,每個都會遍歷整個數組,也不需要索引。 –

回答

0

你能採取的步驟內循環使用jQuery和你闖到大需要知道每一步的指標只是看看它是如何與代碼工作如下

$(submit).click(function(){ 

    /* looping steps */ 
    $('.all_steps .step').each(function(){ 
     var step = this; 
     /* Here select what inputs you need and do the checks */ 
     /* Example */ 
     console.log( $(step).find('.create_tutorial_input').val()); 
     console.log( $(step).find('.create_tutorial_textarea').val()); 

    }); 

}); 

工作拷貝https://jsfiddle.net/a0f69pu4/

+0

我認爲它不適用於dinamycally創建的對象,因爲當jQuery加載並將.click事件附加到.step對象時,我們正在討論的輸入不存在。我已經在不久之前遇到過這個問題... –

+0

這將100%工作 – ustmaestro

+0

這裏我們談論表單提交事件,當他解僱$('。all_steps .step')將返回所有div.step – ustmaestro