2013-10-18 21 views
0

我需要創建動態下拉菜單。我可以根據第一個數值加載第二個數據。之後,我需要添加新的下拉列。我可以添加新的下拉列。但我無法爲新添加的下拉菜單動態加載值。無法加載新添加的下拉數據

這是我的jQuery加載數據的第二個下拉:

<script type="text/javascript"> 
$(document).ready(function(){ 
    $("#state").change(function() { 
     alert('ok'); 
     var state = $("#state :selected").text(); 
     $.ajax({ 
       url:"http://localhost:8888/ajax/search_attendee.php", 
       type:"post", 
       data:'state='+ state, 
       dataType: "html", 
       success:function(data){ 
       $("#trainer").html(data); 
       } 
      }); 

    }); 

    }); 
</script> 

這是jQuery的裝載新行。我可以通過這個函數添加行。但是我無法爲我的第二個下拉菜單加載數據。任何人都可以幫助我做到這一點?

<script type="text/javascript"> 
$(function() { 
    var addDiv = $('#addinput'); 
    var i = $('#addinput p').size() + 1; 

    $('#addNew').live('click', function() { 
     $('<p>'+ 
        '<table id="datatable"><tr><td width="220"></td><td>'+ 
        '<select name="state_' + i +'" id="state">'+ 
        '<option value="0">Select State</option>'+ 
        '<option value="1">QLD</option>'+ 
        '<option value="2">NSW</option>'+ 
        '<option value="3">VIC</option>'+ 
        '<option value="4">WA</option>'+ 
        '<option value="5">ACT</option>'+ 
        '<option value="6">NT</option>'+ 
        '<option value="7">SA</option>'+ 
        '<option value="8">TAS</option>'+ 
        '</select>'+ 
        '<select name="trainer_' + i +'" id="trainer"><option>Select Trainer</option></select>'+ 
        '<a href="#" id="remNew">Remove</a></td></tr></table></p>').appendTo(addDiv); 
     i++; 


}); 

    $('#remNew').live('click', function() { 
      if(i > 2) { 
      $(this).parents('p').remove(); 
      i--; 
     } 

}); 
}); 
</script> 
+0

你能爲此創建一個小提琴嗎? –

回答

1

你需要委派你的活動,最近的靜態父usign on動態添加元素。這是你的情況#state

$(document).on('change','#state',function() { 
     alert('ok'); 
     var state = $("#state :selected").text(); 
     ..... 

,你可能還需要改變你的live()on()如果您正在使用最新版本的jQuery即1.6+ 由於現場已被棄用

$(document).on('click','#addNew',function() { 
    .... 


    $(document).on('click','#remNew', function() { 
    ... 

這個工程然而,委託在插入文檔時出現在文檔中的最接近靜態元素的動態元素優於使用文檔本身的性能。

+0

我改變根據你的答案,但我仍然可以加載數據第二下拉只在第一行。後我添加新的行下拉我無法加載數據第二下拉。 – devuser

+0

確保您的ID對於每個元素都是唯一的..聽起來像您有多個元素的相同ID ...您可以創建一個小提琴嗎? – bipen