javascript - 使用 JQuery 在按钮单击时将行添加到表中

标签 javascript jquery webforms

我正在使用下面的 C# 来生成一个表。我需要一种添加按钮(在 html 表格末尾的自己的行上)的方法,按下该按钮将添加新的文本框行。

这是如何在 JQuery/JavaScript 中实现的?

protected void btnGreen_Click(object sender, EventArgs e)
{
    StringBuilder sb = new StringBuilder(string.Empty);
    sb.Append("<table>");
    sb.Append("<tr>");
    sb.Append("<th>Spl</th>");
    foreach (System.Web.UI.WebControls.ListItem item in cbxTest.Items)
    {

        if (item.Selected) { sb.Append("<th>" + columnname + "</th>"); }
    }
    sb.Append("</tr>"); 
    int z = 2;
    sb.Append("<td><input type=\"text\" name=\"field1\"></td>");
    foreach (System.Web.UI.WebControls.ListItem item in cbxTest.Items)
    {
        if(item.Selected) { sb.Append("<td><input type=\"text\" name=\"field " + z + "\"></td>"); }
        z = z + 1;
    }   
    sb.Append("</tr>");
    sb.Append("</table>");
    other.InnerHtml = sb.ToString();
}

最佳答案

我建议这样做

protected void btnGreen_Click(object sender, EventArgs e)
{
    StringBuilder sb = new StringBuilder(string.Empty);
    sb.Append("<table id=\"tab\">");
    sb.Append("<thead>");
    sb.Append("<tr>");
    sb.Append("<th>Spl</th>");
    foreach (System.Web.UI.WebControls.ListItem item in cbxTest.Items)
    {

        if (item.Selected) { sb.Append("<th>" + columnname + "</th>"); }
    }
    sb.Append("</tr>"); 
    sb.Append("</thead>");
    sb.Append("<tbody>");
    sb.Append("<tr>");

    int z = 2;
    sb.Append("<td><input type=\"text\" name=\"field1\"></td>");
    foreach (System.Web.UI.WebControls.ListItem item in cbxTest.Items)
    {
        if(item.Selected) { sb.Append("<td><input type=\"text\" name=\"field " + z + "\"></td>"); }
        z = z + 1;
    }   
    sb.Append("</tr>");
    sb.Append("</tbody>");
    sb.Append("<tfoot>");
    sb.Append("<tr><td><button id=\"add\" type=\"button\">Add</button></td></tr>");
    sb.Append("</tfoot>");
    sb.Append("</table>");
    other.InnerHtml = sb.ToString();
}

jQuery:

$(function() {
  $("#add").on("click",function() {
    var $row = $("#tab tbody tr").first().clone();
    $row.find("input").val(""); // here you can also change names if needed
    $("#tab tbody").append($row);
  });
});

示例:

$(function() {
  $("#add").on("click", function() {
    var $row = $("#tab tbody tr").first().clone();
    $row.find("input").val(""); // here you can also change names if needed
    $("#tab tbody").append($row);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<table id="tab">
  <thead>
    <tr>
      <th>Spl</th>
      <th>columnname1</th>
      <th>columnname2</th>
      <th>columnname3</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><input type="text" name="field1"></td>
      <td><input type="text" name="field 2"></td>
      <td><input type="text" name="field 3"></td>
      <td><input type="text" name="field 4"></td>
    </tr>
  </tbody>
  <tfoot>
    <tr>
      <td><button id="add" type="button">Add</button></td>
    </tr>
  </tfoot>
</table>

关于javascript - 使用 JQuery 在按钮单击时将行添加到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48546429/

相关文章:

c# - 如何清除 asp.net 中的文本框?

c# - ASP.Net ImageButton 窃取 Enter 按键

javascript - 更新气泡图中的数据时如何将圆圈保留在 svg 内

javascript - 如何使用 web(js) 在 OneSignal 中设置 External_User_Id?

javascript - jQuery 如何将选择器设置为变量

javascript - 如何在 jquery 中干燥需要 $(this) 的代码

javascript - 控制浏览器声音

Javascript Markdown 解析

javascript - 如何定位元素的 'parent'

ruby - 如何使用 sinatra 的参数从提交的表单中获取所有选中的项目?