Advertisement
Guest User

fixedcode

a guest
Oct 13th, 2012
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.57 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Untitled Document</title>
  6. <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
  7. <script>
  8. var devices = ['computer', 'router']
  9. var device_types = {
  10. 'computer': ['laptop', 'desktop'],
  11. 'router': ['wireless', 'bluetooth']
  12. }
  13.  
  14. var brands = {
  15. 'laptop': ['HP', 'DELL'],
  16. 'desktop': ['Apple', 'MAC'],
  17. 'wireless':['Foo','Bar'],
  18. 'bluetooth':['Grren','Blue']
  19. }
  20.  
  21.  
  22. function createOptions(arr) {
  23. var html = ['<option >--select--</option>'];
  24. $.each(arr, function(i, item) {
  25. html.push('<option value="' + item + '">' + item + '</option>')
  26. });
  27. return html.join('');
  28. }
  29.  
  30. var mainOptions = createOptions(devices)
  31.  
  32. $(function() {
  33. $("input[type=button][value=Add]").click(function(e) {
  34. for (i = 0; i < document.getElementById('sel').value; i++) {
  35. e.preventDefault();
  36. var j = 1;
  37.  
  38. var newDiv = $('<div class="row">').appendTo("#dropbox");
  39. $("<select class='devices has_dependents'>").attr("name", "input1_" + j).append(mainOptions).appendTo(newDiv)
  40.  
  41. $("<select class='device_types has_dependents'>").attr("name", "input2_" + j).appendTo(newDiv)
  42. $("<select class='brands'>").attr("name", "input3_" + j).appendTo(newDiv)
  43. $("<input>").attr("name", "input4_" + j).appendTo(newDiv);
  44. $("<button>").text("Remove").appendTo(newDiv).click(function(e) {
  45. e.preventDefault();
  46. $(this).parent().remove();
  47. })
  48. j++;
  49. }
  50. });
  51.  
  52. $(document).on('change', 'select.has_dependents', function() {
  53. var val = $(this).val(),
  54. option_obj;
  55. if ($(this).is('.devices')) {
  56. option_obj = device_types;
  57. } else {
  58. option_obj = brands;
  59. }
  60.  
  61.  
  62. var options = createOptions( option_obj[val]);
  63.  
  64.  
  65. $(this).next().html(options)
  66. })
  67. })
  68. </script>
  69. </head>
  70.  
  71. <body>
  72. <form>
  73. <select id="sel">
  74. <option value="" selected="selected"></option>
  75. <option value="01" >01</option>
  76. <option value="02" >02</option>
  77. <option value="03" >03</option>
  78. <option value="04" >04</option>
  79. <option value="05" >05</option>
  80. <option value="06" >06</option>
  81. <option value="07" >07</option>
  82. <option value="08" >08</option>
  83. <option value="09" >09</option>
  84. <option value="10" >10</option>
  85. <option value="11" >11</option>
  86. <option value="12" >12</option>
  87. <option value="13" >13</option>
  88. <option value="14" >14</option>
  89. <option value="15" >15</option>
  90. </select>
  91. <input type="button" value="Add" />
  92.  
  93. <div id="dropbox"></div>
  94. </form>​
  95. </body>
  96. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement