2016-07-14 1 views
3

私は選択ボックスと10行のテーブルを持っています。テーブル行を追加する方法は選択値によって異なりますか?

<select id="selVal"> 
    <option>10</option> 
    <option>20</option> 
    <option>30</option> 
</select> 

テーブルの行は、選択値が変更されるとすぐに更新されます。 ネイティブのjavascriptを使用しました。

var selVal = document.getElementById('selVal'); 

selVal.addEventListener('change', function(){ 
    var sel = selVal.value; 
    // append table row to the table 
} 

http://codepen.io/anon/pen/BzJaWb

+2

* "ネイティブのJavaScriptを使用しました。" * - あなたはしましたか?だから、そのコードはどこにあり、どこに問題がありますか? – nnnnnn

+0

要素を作成してテーブルに追加します。 –

+0

何を試しましたか? –

答えて

1

私はあなたのcodepenをアップグレードしただけの行を追加するために、あなたが自分で自分のものの残りの部分を変更することができます。codepen

HTMLにコードの下に

コピー&ペースト

Row 
     <select id="howmany4D"> 
     <option>10</option> 
     <option>20</option> 
     <option>30</option> 
     <option>40</option> 
     <option>50</option> 
     </select> 
     <table id="table4d"> 

     </table> 
     <div class="buttons"> 
     <button>Kirim</button> 
     <button>Hapus</button> 
     </div> 
    </div> 

JS

checkAll4D = document.getElementById('checkAll4D'); 
    checkThis4D = document.getElementsByName('checkThis'); 
    howmany4D = document.getElementById('howmany4D'); 

howmany4D.addEventListener('change', function() { 
    deleteRows(); 
howmany4D = document.getElementById('howmany4D'); 
var table4d = document.getElementById('table4d'); 
    table4d.style.width = '100%'; 
    table4d.setAttribute('border', '1'); 
    for(var i = 0; i < howmany4D.value; i++) { 

     var tr = document.createElement('tr'); 
     var td1 = document.createElement('td'); 

     var chkbox = document.createElement('input'); 
     chkbox.type = "checkbox"; 
     chkbox.id = "checkThis"; 
     chkbox.name = "checkThis"; 

     td1.appendChild(chkbox); 
     tr.appendChild(td1) 

     for (var inputNeeded = 0 ; inputNeeded< 5 ; inputNeeded++) { 

      var td = document.createElement('td'); 
      var text = document.createElement('input'); 
      text.type = "text"; 
      text.disabled = "true";  
      td.appendChild(text); 
      tr.appendChild(td)    
     } 
     table4d.appendChild(tr); 
     } 
}); 

for(var i = 0; i < checkThis4D.length; i++) 
    checkThis4D[i].addEventListener('change', hearSome); 

function hearSome() { 
    var parentOf = this.parentNode.parentNode; 
    var inputs = parentOf.querySelectorAll('input[type=text]'); 

    if(this.checked) 
     for(var x = 0; x < inputs.length; x++) inputs[x].removeAttribute('disabled'); 
    else 
     for(var x = 0; x < inputs.length; x++) inputs[x].setAttribute('disabled', true); 
} 

function deleteRows() { 
    var tableHeaderRowCount = 1; 
    var table = document.getElementById('table4d'); 
    var rowCount = table.rows.length; 
    for (var i = tableHeaderRowCount; i < rowCount; i++) { 
     table.deleteRow(tableHeaderRowCount); 
    } 
} 

あなたの問題が解決するかどうか教えてください。

+0

このアプローチは私のためにうまくいった。ありがとう。後で残りの部分を試してみます。 –

+0

ありがとう@HayleyKiara、お手伝いを喜んで:) –

-1

この試してみてください:あなたは、より動的であり、他の多くのオプションを持っているのDataTableを試すことができます

$(document).ready(function() { 
 
    $('#example').DataTable(); 
 
});
<script src="//code.jquery.com/jquery-1.12.3.js"></script> 
 
<link href="https://cdn.datatables.net/1.10.12/css/jquery.dataTables.min.css" rel="stylesheet"/> 
 
<script src="https://cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js"></script> 
 

 

 
<table id="example" class="display" cellspacing="0" width="100%"> 
 
     <thead> 
 
      <tr> 
 
       <th>Name</th> 
 
       <th>Position</th> 
 
       <th>Office</th> 
 
       <th>Age</th> 
 
       <th>Start date</th> 
 
       <th>Salary</th> 
 
      </tr> 
 
     </thead> 
 
     <tfoot> 
 
      <tr> 
 
       <th>Name</th> 
 
       <th>Position</th> 
 
       <th>Office</th> 
 
       <th>Age</th> 
 
       <th>Start date</th> 
 
       <th>Salary</th> 
 
      </tr> 
 
     </tfoot> 
 
     <tbody> 
 
      <tr> 
 
       <td>Tiger Nixon</td> 
 
       <td>System Architect</td> 
 
       <td>Edinburgh</td> 
 
       <td>61</td> 
 
       <td>2011/04/25</td> 
 
       <td>$320,800</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Garrett Winters</td> 
 
       <td>Accountant</td> 
 
       <td>Tokyo</td> 
 
       <td>63</td> 
 
       <td>2011/07/25</td> 
 
       <td>$170,750</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Ashton Cox</td> 
 
       <td>Junior Technical Author</td> 
 
       <td>San Francisco</td> 
 
       <td>66</td> 
 
       <td>2009/01/12</td> 
 
       <td>$86,000</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Cedric Kelly</td> 
 
       <td>Senior Javascript Developer</td> 
 
       <td>Edinburgh</td> 
 
       <td>22</td> 
 
       <td>2012/03/29</td> 
 
       <td>$433,060</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Airi Satou</td> 
 
       <td>Accountant</td> 
 
       <td>Tokyo</td> 
 
       <td>33</td> 
 
       <td>2008/11/28</td> 
 
       <td>$162,700</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Brielle Williamson</td> 
 
       <td>Integration Specialist</td> 
 
       <td>New York</td> 
 
       <td>61</td> 
 
       <td>2012/12/02</td> 
 
       <td>$372,000</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Herrod Chandler</td> 
 
       <td>Sales Assistant</td> 
 
       <td>San Francisco</td> 
 
       <td>59</td> 
 
       <td>2012/08/06</td> 
 
       <td>$137,500</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Rhona Davidson</td> 
 
       <td>Integration Specialist</td> 
 
       <td>Tokyo</td> 
 
       <td>55</td> 
 
       <td>2010/10/14</td> 
 
       <td>$327,900</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Colleen Hurst</td> 
 
       <td>Javascript Developer</td> 
 
       <td>San Francisco</td> 
 
       <td>39</td> 
 
       <td>2009/09/15</td> 
 
       <td>$205,500</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Sonya Frost</td> 
 
       <td>Software Engineer</td> 
 
       <td>Edinburgh</td> 
 
       <td>23</td> 
 
       <td>2008/12/13</td> 
 
       <td>$103,600</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Jena Gaines</td> 
 
       <td>Office Manager</td> 
 
       <td>London</td> 
 
       <td>30</td> 
 
       <td>2008/12/19</td> 
 
       <td>$90,560</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Quinn Flynn</td> 
 
       <td>Support Lead</td> 
 
       <td>Edinburgh</td> 
 
       <td>22</td> 
 
       <td>2013/03/03</td> 
 
       <td>$342,000</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Charde Marshall</td> 
 
       <td>Regional Director</td> 
 
       <td>San Francisco</td> 
 
       <td>36</td> 
 
       <td>2008/10/16</td> 
 
       <td>$470,600</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Haley Kennedy</td> 
 
       <td>Senior Marketing Designer</td> 
 
       <td>London</td> 
 
       <td>43</td> 
 
       <td>2012/12/18</td> 
 
       <td>$313,500</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Tatyana Fitzpatrick</td> 
 
       <td>Regional Director</td> 
 
       <td>London</td> 
 
       <td>19</td> 
 
       <td>2010/03/17</td> 
 
       <td>$385,750</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Michael Silva</td> 
 
       <td>Marketing Designer</td> 
 
       <td>London</td> 
 
       <td>66</td> 
 
       <td>2012/11/27</td> 
 
       <td>$198,500</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Paul Byrd</td> 
 
       <td>Chief Financial Officer (CFO)</td> 
 
       <td>New York</td> 
 
       <td>64</td> 
 
       <td>2010/06/09</td> 
 
       <td>$725,000</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Gloria Little</td> 
 
       <td>Systems Administrator</td> 
 
       <td>New York</td> 
 
       <td>59</td> 
 
       <td>2009/04/10</td> 
 
       <td>$237,500</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Bradley Greer</td> 
 
       <td>Software Engineer</td> 
 
       <td>London</td> 
 
       <td>41</td> 
 
       <td>2012/10/13</td> 
 
       <td>$132,000</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Dai Rios</td> 
 
       <td>Personnel Lead</td> 
 
       <td>Edinburgh</td> 
 
       <td>35</td> 
 
       <td>2012/09/26</td> 
 
       <td>$217,500</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Jenette Caldwell</td> 
 
       <td>Development Lead</td> 
 
       <td>New York</td> 
 
       <td>30</td> 
 
       <td>2011/09/03</td> 
 
       <td>$345,000</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Yuri Berry</td> 
 
       <td>Chief Marketing Officer (CMO)</td> 
 
       <td>New York</td> 
 
       <td>40</td> 
 
       <td>2009/06/25</td> 
 
       <td>$675,000</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Caesar Vance</td> 
 
       <td>Pre-Sales Support</td> 
 
       <td>New York</td> 
 
       <td>21</td> 
 
       <td>2011/12/12</td> 
 
       <td>$106,450</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Doris Wilder</td> 
 
       <td>Sales Assistant</td> 
 
       <td>Sidney</td> 
 
       <td>23</td> 
 
       <td>2010/09/20</td> 
 
       <td>$85,600</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Angelica Ramos</td> 
 
       <td>Chief Executive Officer (CEO)</td> 
 
       <td>London</td> 
 
       <td>47</td> 
 
       <td>2009/10/09</td> 
 
       <td>$1,200,000</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Gavin Joyce</td> 
 
       <td>Developer</td> 
 
       <td>Edinburgh</td> 
 
       <td>42</td> 
 
       <td>2010/12/22</td> 
 
       <td>$92,575</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Jennifer Chang</td> 
 
       <td>Regional Director</td> 
 
       <td>Singapore</td> 
 
       <td>28</td> 
 
       <td>2010/11/14</td> 
 
       <td>$357,650</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Brenden Wagner</td> 
 
       <td>Software Engineer</td> 
 
       <td>San Francisco</td> 
 
       <td>28</td> 
 
       <td>2011/06/07</td> 
 
       <td>$206,850</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Fiona Green</td> 
 
       <td>Chief Operating Officer (COO)</td> 
 
       <td>San Francisco</td> 
 
       <td>48</td> 
 
       <td>2010/03/11</td> 
 
       <td>$850,000</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Shou Itou</td> 
 
       <td>Regional Marketing</td> 
 
       <td>Tokyo</td> 
 
       <td>20</td> 
 
       <td>2011/08/14</td> 
 
       <td>$163,000</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Michelle House</td> 
 
       <td>Integration Specialist</td> 
 
       <td>Sidney</td> 
 
       <td>37</td> 
 
       <td>2011/06/02</td> 
 
       <td>$95,400</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Suki Burks</td> 
 
       <td>Developer</td> 
 
       <td>London</td> 
 
       <td>53</td> 
 
       <td>2009/10/22</td> 
 
       <td>$114,500</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Prescott Bartlett</td> 
 
       <td>Technical Author</td> 
 
       <td>London</td> 
 
       <td>27</td> 
 
       <td>2011/05/07</td> 
 
       <td>$145,000</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Gavin Cortez</td> 
 
       <td>Team Leader</td> 
 
       <td>San Francisco</td> 
 
       <td>22</td> 
 
       <td>2008/10/26</td> 
 
       <td>$235,500</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Martena Mccray</td> 
 
       <td>Post-Sales support</td> 
 
       <td>Edinburgh</td> 
 
       <td>46</td> 
 
       <td>2011/03/09</td> 
 
       <td>$324,050</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Unity Butler</td> 
 
       <td>Marketing Designer</td> 
 
       <td>San Francisco</td> 
 
       <td>47</td> 
 
       <td>2009/12/09</td> 
 
       <td>$85,675</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Howard Hatfield</td> 
 
       <td>Office Manager</td> 
 
       <td>San Francisco</td> 
 
       <td>51</td> 
 
       <td>2008/12/16</td> 
 
       <td>$164,500</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Hope Fuentes</td> 
 
       <td>Secretary</td> 
 
       <td>San Francisco</td> 
 
       <td>41</td> 
 
       <td>2010/02/12</td> 
 
       <td>$109,850</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Vivian Harrell</td> 
 
       <td>Financial Controller</td> 
 
       <td>San Francisco</td> 
 
       <td>62</td> 
 
       <td>2009/02/14</td> 
 
       <td>$452,500</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Timothy Mooney</td> 
 
       <td>Office Manager</td> 
 
       <td>London</td> 
 
       <td>37</td> 
 
       <td>2008/12/11</td> 
 
       <td>$136,200</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Jackson Bradshaw</td> 
 
       <td>Director</td> 
 
       <td>New York</td> 
 
       <td>65</td> 
 
       <td>2008/09/26</td> 
 
       <td>$645,750</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Olivia Liang</td> 
 
       <td>Support Engineer</td> 
 
       <td>Singapore</td> 
 
       <td>64</td> 
 
       <td>2011/02/03</td> 
 
       <td>$234,500</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Bruno Nash</td> 
 
       <td>Software Engineer</td> 
 
       <td>London</td> 
 
       <td>38</td> 
 
       <td>2011/05/03</td> 
 
       <td>$163,500</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Sakura Yamamoto</td> 
 
       <td>Support Engineer</td> 
 
       <td>Tokyo</td> 
 
       <td>37</td> 
 
       <td>2009/08/19</td> 
 
       <td>$139,575</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Thor Walton</td> 
 
       <td>Developer</td> 
 
       <td>New York</td> 
 
       <td>61</td> 
 
       <td>2013/08/11</td> 
 
       <td>$98,540</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Finn Camacho</td> 
 
       <td>Support Engineer</td> 
 
       <td>San Francisco</td> 
 
       <td>47</td> 
 
       <td>2009/07/07</td> 
 
       <td>$87,500</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Serge Baldwin</td> 
 
       <td>Data Coordinator</td> 
 
       <td>Singapore</td> 
 
       <td>64</td> 
 
       <td>2012/04/09</td> 
 
       <td>$138,575</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Zenaida Frank</td> 
 
       <td>Software Engineer</td> 
 
       <td>New York</td> 
 
       <td>63</td> 
 
       <td>2010/01/04</td> 
 
       <td>$125,250</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Zorita Serrano</td> 
 
       <td>Software Engineer</td> 
 
       <td>San Francisco</td> 
 
       <td>56</td> 
 
       <td>2012/06/01</td> 
 
       <td>$115,000</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Jennifer Acosta</td> 
 
       <td>Junior Javascript Developer</td> 
 
       <td>Edinburgh</td> 
 
       <td>43</td> 
 
       <td>2013/02/01</td> 
 
       <td>$75,650</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Cara Stevens</td> 
 
       <td>Sales Assistant</td> 
 
       <td>New York</td> 
 
       <td>46</td> 
 
       <td>2011/12/06</td> 
 
       <td>$145,600</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Hermione Butler</td> 
 
       <td>Regional Director</td> 
 
       <td>London</td> 
 
       <td>47</td> 
 
       <td>2011/03/21</td> 
 
       <td>$356,250</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Lael Greer</td> 
 
       <td>Systems Administrator</td> 
 
       <td>London</td> 
 
       <td>21</td> 
 
       <td>2009/02/27</td> 
 
       <td>$103,500</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Jonas Alexander</td> 
 
       <td>Developer</td> 
 
       <td>San Francisco</td> 
 
       <td>30</td> 
 
       <td>2010/07/14</td> 
 
       <td>$86,500</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Shad Decker</td> 
 
       <td>Regional Director</td> 
 
       <td>Edinburgh</td> 
 
       <td>51</td> 
 
       <td>2008/11/13</td> 
 
       <td>$183,000</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Michael Bruce</td> 
 
       <td>Javascript Developer</td> 
 
       <td>Singapore</td> 
 
       <td>29</td> 
 
       <td>2011/06/27</td> 
 
       <td>$183,000</td> 
 
      </tr> 
 
      <tr> 
 
       <td>Donna Snider</td> 
 
       <td>Customer Support</td> 
 
       <td>New York</td> 
 
       <td>27</td> 
 
       <td>2011/01/25</td> 
 
       <td>$112,000</td> 
 
      </tr> 
 
     </tbody> 
 
    </table>

+0

私はこのプロジェクトでjqueryを使用しません。 –

+0

頭に簡単なスクリプトを追加してリンクすることができます –

+1

彼女はjQueryの使い方を知らないとは言わず、彼女は非jQueryソリューションを求めています。 – nnnnnn

1

下記参照 このhttp://plnkr.co/edit/XvK0815wd2KiVl8b3hQI?p=preview

HTML

<body> 
    <select id="selVal"> 
    <option>10</option> 
    <option>20</option> 
    <option>30</option> 
</select> 
    </body> 

JS

をお試しください
// Code goes here 
window.onload = function() { 
var selVal = document.getElementById('selVal'); 

selVal.addEventListener('change', function(){ 
    // append table row to the table 
    var value = document.getElementById("selVal").value; 


    var tables = document.getElementsByTagName("TABLE"); 
    console.log(tables); 

    var body = document.getElementsByTagName('body')[0]; 
    for (var i=tables.length-1; i>=0;i-=1) 
    if (tables[i]) tables[i].parentNode.removeChild(tables[i]); 
    var tbl = document.createElement('table'); 

    tbl.style.width = '100%'; 
    tbl.setAttribute('border', '1'); 
    var tbdy = document.createElement('tbody'); 
    for (var i = 0; i < value; i++) { 
     var tr = document.createElement('tr'); 
       var td = document.createElement('td'); 
       td.appendChild(document.createTextNode('\u0020')) 
       td.setAttribute('rowSpan', '2'); 
       tr.appendChild(td) 

     tbdy.appendChild(tr); 
    } 
    tbl.appendChild(tbdy); 
    body.appendChild(tbl); 
}); 

}; 
+0

前の行を削除したりリセットしたりしていない –

+0

Mandeep Singh、コード –

+1

を更新しました。Nice @Rejsですが、コード入力で入力したように入力タイプ= "text"をいくつか与えることができます。あなたにはそれは働いているbcoz –

関連する問題