[英]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);
})
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.