Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何设置使用ajax动态创建的HTML表列的唯一名称和id_Javascript_Jquery_Html_Ajax_Jsp - Fatal编程技术网

Javascript 如何设置使用ajax动态创建的HTML表列的唯一名称和id

Javascript 如何设置使用ajax动态创建的HTML表列的唯一名称和id,javascript,jquery,html,ajax,jsp,Javascript,Jquery,Html,Ajax,Jsp,我正在创建一个JSP页面,其中有一个文本字段和按钮。若用户在textfield中输入一些整数值,比如说2,那个么最终将在Html表中追加2行。所以HTML表的行是动态创建的 我使用ajax调用一个页面来实现这一点,该页面包含数据,该数据将添加到最后一行之后的主表中 一切正常。行是使用ajax调用动态创建的。但问题是,添加到表中的所有行都具有相同的列名属性 下面是我的代码: JSP主页面: <%@ page language="java" contentType="text/html; ch

我正在创建一个JSP页面,其中有一个文本字段和按钮。若用户在textfield中输入一些整数值,比如说2,那个么最终将在Html表中追加2行。所以HTML表的行是动态创建的

我使用ajax调用一个页面来实现这一点,该页面包含
数据,该数据将添加到最后一行之后的主表中

一切正常。行是使用ajax调用动态创建的。但问题是,添加到表中的所有行都具有相同的列名属性

下面是我的代码:

JSP主页面:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<style>
.table {
    font-size: 11px;
}

#dailyTableDiv {
    height: 70%;
    overflow: scroll;
}
</style>
<script>
function addTask(){
    var n=$("#dailytsks").val();
    for(i=1;i<=n;i++){
        $.ajax({url:"employeeSection/dailyTableRow.jsp",success:function(result){
            $('#dailyTable tr:last').after(result);
          }});  
    }


    //------------------------------
    // i am trying this code to set different names for different select box column.
    //but this is not happenting.
    for(i=1;i<=n;i++){
        $("#chSelect").attr("name","chSelect"+i);
    } 
    //------------------------------
}

function add1Row(){
    $.ajax({url:"employeeSection/dailyTableRow.jsp",success:function(result){
        $('#dailyTable tr:last').after(result);
      }});  
}
</script>
</head>
<body>
    <div class="container-fluid">
        <div class="well">
            <input type="text" id="dailytsks" name="dailytsks" /><input
                type="button" name="addTsks" value="add" onclick="addTask();" /> <span
                style="margin-left: 20px;"></span><input type="button" value="+"
                id="add1" name="add1" onclick="add1Row();" /> <span
                style="margin-left: 20px;"></span><input type="button" value="-"
                id="minus" name="minus" />
        </div>
    </div>
    <div class="container-fluid">
        <div id="dailyTableDiv">
            <table id="dailyTable" class="table table-bordered">
                <thead>
                    <tr>
                        <th>Select</th>
                        <th>Date</th>
                        <th>Client Name</th>
                        <th>Task-Type</th>
                        <th>NBPE-Type</th>
                        <th>Task-Name</th>
                        <th>Planned-Hrs</th>
                        <th>Priority</th>
                        <th>Cross-Team</th>
                        <th>Current-Status</th>
                        <th>Is-Completed</th>
                        <th>Actual-Hrs</th>
                        <th>SMC-ID</th>
                        <th>SMC-URL</th>
                        <th>Comments</th>
                    </tr>
                </thead>
                <tbody>
                </tbody>
            </table>
        </div>
    </div>
</body>
</html>

在此处插入标题
.桌子{
字体大小:11px;
}
#每日表格{
身高:70%;
溢出:滚动;
}
函数addTask(){
var n=$(“#dailytsks”).val();
对于(i=1;i

基本思想是将行号存储在一个全局变量中,每次通过Ajax添加一行时,该变量都会增加

当Ajax调用resolve时,您可以使用JQuery解析生成的html(
result
),更改
chSelect
元素的
name
属性,并像前面一样将更改附加到最后一个
tr

// add a global variable to store row number
var row = 0;

function addTask(){
    var n = $("#dailytsks").val();
    var max = parseInt(n);

    for(i=1; i<=max; i++){
        $.ajax({
            url: "employeeSection/dailyTableRow.jsp",
            success: function(result){
                row += 1
                var newName = "chSelect" + row;

                var html = $('<div>').append(result);
                $(html).find("#chSelect").attr("name", newName)

                $('#dailyTable tr:last')
                  .after( html.html() )
            }
        });  
    }
}


function add1Row(){
    $.ajax({
        url: "employeeSection/dailyTableRow.jsp",
        success: function(result){
            row += 1;
            var newName = "chSelect" + row;
            var html = $('<div>').append(result);
            $(html).find("#chSelect").attr("name", newName)
            $('#dailyTable tr:last')
               .after( html.html() )
        }
    });  
}
//添加一个全局变量来存储行号
var行=0;
函数addTask(){
var n=$(“#dailytsks”).val();
var max=parseInt(n);

对于(i=1;i来说,基本思想是将行号存储在一个全局变量中,每次通过Ajax添加一行时,该变量都会增加

当Ajax调用resolve时,您可以使用JQuery解析生成的html(
result
),更改
chSelect
元素的
name
属性,并像前面一样将更改附加到最后一个
tr

// add a global variable to store row number
var row = 0;

function addTask(){
    var n = $("#dailytsks").val();
    var max = parseInt(n);

    for(i=1; i<=max; i++){
        $.ajax({
            url: "employeeSection/dailyTableRow.jsp",
            success: function(result){
                row += 1
                var newName = "chSelect" + row;

                var html = $('<div>').append(result);
                $(html).find("#chSelect").attr("name", newName)

                $('#dailyTable tr:last')
                  .after( html.html() )
            }
        });  
    }
}


function add1Row(){
    $.ajax({
        url: "employeeSection/dailyTableRow.jsp",
        success: function(result){
            row += 1;
            var newName = "chSelect" + row;
            var html = $('<div>').append(result);
            $(html).find("#chSelect").attr("name", newName)
            $('#dailyTable tr:last')
               .after( html.html() )
        }
    });  
}
//添加一个全局变量来存储行号
var行=0;
函数addTask(){
var n=$(“#dailytsks”).val();
var max=parseInt(n);
对于(i=1;i这可能会对您有所帮助

HTML:-

<input type="checkbox"  name="chSelect" class="chSelect" />
<input type="checkbox" name="chSelect" class="chSelect" />
<input type="checkbox" name="chSelect"  class="chSelect" />
链接:-

这可能会对您有所帮助

HTML:-

<input type="checkbox"  name="chSelect" class="chSelect" />
<input type="checkbox" name="chSelect" class="chSelect" />
<input type="checkbox" name="chSelect"  class="chSelect" />
链接:-

现在只显示3个复选框。没有其他组件可见。我的坏,我没有正确地修改HTML,请尝试编辑的版本。这个解决方案不是很优雅,您应该考虑将变量直接传递到Ajax请求中,并使用这个变量在服务器端设置<代码>名称< /Cord>属性。uld还使用类似Knockout.js的框架[只需几行代码就可以做到这一点哦,是的,你说得太对了。我应该传递一个参数,比如1,2,3,4,…让用户输入ajax请求URL。然后,在那个特定页面上,我应该通过每次追加行号来迭代代码。谢谢你的建议。它现在只显示了3个复选框。没有其他组件当然,我的坏,我没有正确地修改HTML,请尝试编辑的版本。这个解决方案不是很优雅,你应该考虑把变量直接传递到Ajax请求中,并使用这个变量在服务器端设置<代码>名称< /代码>属性。你也可以使用像KokOut.js这样的框架。[只需几行代码就可以做到这一点哦,是的,你说得太对了。我应该传递一个参数,比如1,2,3,4,…用户已经输入了ajax请求URL。然后,在那个特定页面上,我应该通过每次追加行号来迭代我的代码。谢谢你的建议。我应该在我的案例。当我在我的addTask()方法结束前添加代码时,它无法更改name属性值。我在chrome的inspect元素选项中选中了该选项。在我的案例中,我应该在哪里添加上述javascript代码。当我在我的addTask()中添加代码时方法结束之前,它无法更改name属性值。