简体   繁体   English

HTML 可编辑表:添加新行,包括单选按钮

[英]HTML Editable Table : Add new row including radio buttons

Let's say, I have an editable html table.假设,我有一个可编辑的 html 表。 In one of these table cells it contains radio button.在这些表格单元之一中,它包含单选按钮。 What I want is to add a new row button.我想要的是添加一个新的行按钮。 When I click the button the new row should contain same radio buttons with new group .当我单击按钮时,新行应包含与新组相同的单选按钮。

Let's say, when the page initially loads the table is something like:比方说,当页面最初加载表格时,类似于:

<table id="exp02Table" class="responsive-table">
  <thead>
    <tr class="bengaliText">
      <th> (P)</th>
      <th> (a cm)</th>
      <th> (b cm)</th>
      <th> (c cm)</th>
      <th> L=(a-b) cm</th>
      <th> H = (c-b) cm </th>
      <th> P = H±h</th>
      <th> PV = (H±h)*L</th>
    </tr>
  </thead>
  <tbody id="exp02TBody">
    <tr>
      <td>
        <p> <label> <input value="0" checked name="group1" type="radio" /> <span>বায়ু মন্ডলের চাপ</span> </label> </p>
        <p> <label> <input value="1" name="group1" type="radio" /> <span>বায়ু মন্ডলের চাপের বেশী</span> </label> </p>
        <p> <label> <input value="2" name="group1" type="radio" /> <span>বায়ু মন্ডলের চাপের কম</span> </label> </p>
      </td>
      <td contenteditable></td>
      <td contenteditable></td>
      <td contenteditable></td>
      <td contenteditable></td>
      <td contenteditable></td>
      <td contenteditable></td>
      <td contenteditable></td>
    </tr>
  </tbody>
</table>

You can see the first column has radio buttons with group1 group name.您可以看到第一列有带有group1组名的单选按钮。

What I am trying to say is that next time when I click the add new row button the new row should我想说的是,下次当我单击添加新行按钮时,新行应该

  • include same radio buttons with new group name group 2, group 3.... and the first radio option should be checked包括具有新组名组 2、组 3 的相同单选按钮 .... 并且应检查第一个单选选项

  • and the other td (table data) should be contenteditable with no values in it :并且其他td (表数据)应该是 contenteditable ,其中没有值

     <tr> <td> <p> <label> <input value="0" checked name="group2" type="radio" /> <span>বায়ু মন্ডলের চাপ</span> </label> </p> <p> <label> <input value="1" name="group2" type="radio" /> <span>বায়ু মন্ডলের চাপের বেশী</span> </label> </p> <p> <label> <input value="2" name="group2" type="radio" /> <span>বায়ু মন্ডলের চাপের কম</span> </label> </p> </td> <td contenteditable></td> <td contenteditable></td> <td contenteditable></td> <td contenteditable></td> <td contenteditable></td> <td contenteditable></td> <td contenteditable></td> </tr>

Hope this will help希望这会有所帮助

HTML HTML

<table id="exp02Table" class="responsive-table table table-bordered">
  <thead>
   <tr class="bengaliText">
    <th> (P)</th>
    <th> (a cm)</th>
    <th> (b cm)</th>
    <th> (c cm)</th>
    <th> L=(a-b) cm</th>
    <th> H = (c-b) cm </th>
    <th> P = H±h</th>
    <th> PV = (H±h)*L</th>
  </tr>
 </thead>
 <tbody id="exp02TBody">
   <tr>
    <td>
     <p> <label> <input value="0" checked name="group1" type="radio" /> <span>বায়ু মন্ডলের চাপ</span> </label> </p>
    <p> <label> <input value="1" name="group1" type="radio" /> <span>বায়ু মন্ডলের চাপের বেশী</span> </label> </p>
    <p> <label> <input value="2" name="group1" type="radio" /> <span>বায়ু মন্ডলের চাপের কম</span> </label> </p>
  </td>
  <td contenteditable></td>
  <td contenteditable></td>
  <td contenteditable></td>
  <td contenteditable></td>
  <td contenteditable></td>
  <td contenteditable></td>
  <td contenteditable></td>
  </tr>
 </tbody>
</table>

<button class="addN">
 Add New
</button>

JS JS

$(".addN").on("click", function(e){
 var lastTr = $("#exp02TBody").find("tr:last-child")
 var clone = lastTr.clone();
 var groupName  = lastTr.find("input[type='radio']").attr("name");
 var lastGroupNum = parseInt(groupName.match(/\d/g).join(""));
 var newGroup = "group"+(lastGroupNum+1);
 clone.find("input[type='radio']").attr("name", newGroup);
 $("#exp02TBody").append(clone);
})

Working Fiddle工作小提琴

In order to add a new object to your Document Object Model (DOM) after interaction with some kind of elements such as a button, some JavaScript might be required. In order to add a new object to your Document Object Model (DOM) after interaction with some kind of elements such as a button, some JavaScript might be required. See the following fiddle:请参阅以下小提琴:

In plain JavaScript:在普通 JavaScript 中:

 let i = 1; function AddRow() { i++; let tbody = document.getElementById("exp02TBody"); let tr = document.createElement("tr"); //The HTML for the row. Obviously not as readable in JavaScript so there might a bit cleaner solution to this but at least it's functional: tr.innerHTML = "<td><p><label><input value='0' checked name='group-" + i + "' type='radio'> বায়ু মন্ডলের চাপ</label></p><p><label><input value='1' name='group-" + i + "' type='radio'> বায়ু মন্ডলের চাপের বেশী</label></p><p><label><input value='2' name='group-" + i + "' type='radio'> বায়ু মন্ডলের চাপের কম</label></p></td><td contenteditable></td><td contenteditable></td><td contenteditable></td><td contenteditable></td><td contenteditable></td><td contenteditable></td><td contenteditable></td>"; tbody.appendChild(tr); }
 <table id="exp02Table" class="responsive-table"> <thead> <tr class="bengaliText"> <th> (P)</th> <th> (a cm)</th> <th> (b cm)</th> <th> (c cm)</th> <th> L=(ab) cm</th> <th> H = (cb) cm </th> <th> P = H±h</th> <th> PV = (H±h)*L</th> </tr> </thead> <tbody id="exp02TBody"> <tr> <td> <p> <label> <input value="0" checked name="group1" type="radio" /> <span>বায়ু মন্ডলের চাপ</span> </label> </p> <p> <label> <input value="1" name="group1" type="radio" /> <span>বায়ু মন্ডলের চাপের বেশী</span> </label> </p> <p> <label> <input value="2" name="group1" type="radio" /> <span>বায়ু মন্ডলের চাপের কম</span> </label> </p> </td> <td contenteditable></td> <td contenteditable></td> <td contenteditable></td> <td contenteditable></td> <td contenteditable></td> <td contenteditable></td> <td contenteditable></td> </tr> </tbody> </table> <button onclick="AddRow()">Add row</button>

I added a <button onclick="AddRow()">Add row</button> to your DOM (in the HTML) and I added a script with the function Addrow() (please see the fiddle for referencce).我添加了一个<button onclick="AddRow()">Add row</button>到您的 DOM(在 HTML 中),并添加了一个带有 function Addrow()的脚本(请参阅小提琴以供参考)。

In jQuery:在 jQuery 中:

 $(document).ready(function() { let i = 1; $("#row-button").on("click", function() { i++; $("#exp02TBody").append("<tr><td><p><label><input value='0' checked name='group-" + i + "' type='radio'> বায়ু মন্ডলের চাপ</label></p><p><label><input value='1' name='group-" + i + "' type='radio'> বায়ু মন্ডলের চাপের বেশী</label></p><p><label><input value='2' name='group-" + i + "' type='radio'> বায়ু মন্ডলের চাপের কম</label></p></td><td contenteditable></td><td contenteditable></td><td contenteditable></td><td contenteditable></td><td contenteditable></td><td contenteditable></td><td contenteditable></td></tr>"); }); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <table id="exp02Table" class="responsive-table"> <thead> <tr class="bengaliText"> <th> (P)</th> <th> (a cm)</th> <th> (b cm)</th> <th> (c cm)</th> <th> L=(ab) cm</th> <th> H = (cb) cm </th> <th> P = H±h</th> <th> PV = (H±h)*L</th> </tr> </thead> <tbody id="exp02TBody"> <tr> <td> <p> <label> <input value="0" checked name="group1" type="radio" /> <span>বায়ু মন্ডলের চাপ</span> </label> </p> <p> <label> <input value="1" name="group1" type="radio" /> <span>বায়ু মন্ডলের চাপের বেশী</span> </label> </p> <p> <label> <input value="2" name="group1" type="radio" /> <span>বায়ু মন্ডলের চাপের কম</span> </label> </p> </td> <td contenteditable></td> <td contenteditable></td> <td contenteditable></td> <td contenteditable></td> <td contenteditable></td> <td contenteditable></td> <td contenteditable></td> </tr> </tbody> </table> <button id="row-button">Add row</button>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM