javascript - 将 html 表中的输入文本动态传递给 Javascript 函数

标签 javascript c# jquery html asp.net

我正在生成如下所示的 html 表:

    var tablebody = "";

    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "mCatchmentMapping.aspx/BindDatatable",
        data: "{}",
        dataType: "json",
        success: function (data) {
            var struct = "<div class='message_list'><div class='module_content'>";

            for (var i = 0; i < data.d.length; i++) {
                tablebody = tablebody + "<div class='message'><table id='tblhtml' width='100%'><tr><td width='25%'>" + data.d[i].Name + "</td>";
                tablebody = tablebody + "<td><input type='hidden' style='color: green;' id='txtCode' name='Code' size='5' type='number' value=" + data.d[i].Code + "></td>";
                tablebody = tablebody + "<td width='15%' class='nr' align='left' style='color:green'><input type='text'  class='nr' style='color: green;' id='txtCatchment' name='txtCatchment' size='5' type='number' value=" + data.d[i].Catchment + "></td>";
                tablebody = tablebody + "<td width='15%' align='left' style='color:green'><input type='text' style='color: green;' id='txtSalesMonth1' name='SalesMonth1' size='5' type='number' value=" + data.d[i].salesMonth1 + "></td>";
                tablebody = tablebody + "<td width='15%' align='left' style='color:green'><input type='text' style='color: green;' id='txtSalesMonth2' name='SalesMonth2' size='5' type='number' value=" + data.d[i].salesMonth2 + "></td>";
                tablebody = tablebody + "<td width='15%' align='left' style='color:green'><input type='text' style='color: green;' id='txtSalesMonth3' name='SalesMonth3' size='5' type='number' value=" + data.d[i].salesMonth3 + "></td>";
                tablebody = tablebody + "<td width='15%' align='left' style='color:green'><input type='submit' class='use-address' id='btnSave' name='Save' onclick='saveData( " + data.d[i].Code + "," + $('#txtCatchment').val() + "," + $('#txtSalesMonth1').val() + "," + $('#txtSalesMonth2').val() + "," + $('#txtSalesMonth3').val() + ")'; value='Save'/></td></tr></table></div>";
            }
            tablebody = tablebody + "</div></div>"
            tablebody = struct + tablebody;
            $("#tbDetails").append(tablebody);
        },
        error: function (result) {
            alert("Error");
        }
    });

每一行的最后一个 td 都有一个保存按钮。如果我单击“保存”按钮,则相应行的输入文本值应作为参数传递给 JavaScript 函数“saveData”。

这是我的 JavaScript 函数:

    function saveData(code, catchment, month1, month2, month3) {
    alert("storename :" + code);
    alert("catchment :" + catchment);
    alert("month1 :" + month1);
    alert("month2 :" + month2);
    alert("month3 :" + month3);
    }

当我单击“保存”时,我得到“catchment”、“month1”、“month2”和“month3”的未定义值。

如何将输入文本值传递给 JavaScript 函数?

最佳答案

您正在动态创建文本框,因此它们在创建时不可用,但在运行时可用,因此您必须像这样传递它们

tablebody = tablebody + "<td width='15%' align='left' style='color:green'><input type='submit' class='use-address' id='btnSave' name='Save' onclick='saveData( " + data.d[i].Code + ",$(\"#txtCatchment\").val(), $(\"#txtSalesMonth1\").val(),$(\"#txtSalesMonth2\").val(), $(\"#txtSalesMonth3\").val())'; value='Save'/></td></tr></table></div>";

这是类似的示例

https://jsfiddle.net/h553jzmb/

关于javascript - 将 html 表中的输入文本动态传递给 Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39445845/

相关文章:

javascript - Grunt - 如何使用 grunt 缓存破坏更新 js 文件中的 html 文件引用?

c# - 单元测试私有(private) Setter 问题(C#)

c# - 读取位时来自 SqlDataReader 的无效转换异常

javascript - 如何向本地托管的 Node.js 服务器发出 jQuery 请求?

javascript - 服务器端如何使用Ajax发送无格式文件数据?

javascript - 扩展 AngularJS 模板

javascript - Ajax 更新 primefaces 中的 javascript 脚本

JavaScript:创建一个简单的猜数字游戏并出现未捕获的类型错误

c# - 我找到了一个依赖于在其扩展中定义的方法的类。这是一种模式吗?

javascript - jQuery 检查页面加载时所有输入的状态