如何使用 JavaScript 或 JQuery 在 ASP.net 中获取生成控件的 ID

Posted

技术标签:

【中文标题】如何使用 JavaScript 或 JQuery 在 ASP.net 中获取生成控件的 ID【英文标题】:How to get IDs of Generated controls in ASP.net using JavaScript or JQuery 【发布时间】:2013-12-21 10:21:33 【问题描述】:

我有 DataGrid,其中一列是 TextBox。 DataGrid 是从数据库动态生成的。是用来开票的。一张发票可能有两行,另一张可能有 10 行。每个文本框的 ID 不同,当用户输入金额时,我需要读取每个文本框的值,将它们全部加起来,然后显示另一个字段的总数。

问题:我不知道如何访问每个文本框(当用户输入特定文本框的金额时会触发 ValueChanged 事件)

我正在尝试使用 javascript 或 JQuery 来解决这个问题。 (没有更新面板)

非常感谢任何帮助。

谢谢。

【问题讨论】:

我会给输入一个通用类并使用它来选择它们。 【参考方案1】:

给每个文本框一个类名。然后您可以通过以下方式遍历每个文本框

var total=0;

$(".className").each(function()

    total += Number(this.val());

);

【讨论】:

【参考方案2】:

如果您的网格的 id 为 grid,那么您可以这样做:

$('#grid input[type=text]').each(function()
   ///Glorious code!!
);

【讨论】:

【参考方案3】:

使用 jQuery,

$(document).on("ready", function()
    $("document").on("keyup input paste", "input", function()
        var inputID = $(this).attr('id');
        //more code here...
    );
);

使用事件委托,事件将始终在所有文本框上触发。如果需要,将“输入”更改为更具体的选择器。

【讨论】:

【参考方案4】:

如果您想为所有文本框添加侦听器,请不要使用 ID,而是使用类。

<input type="text" class="my-text-box">

和 JS(使用 jQuery)

$('.my-text-box').keyup(function()
console.log($(this).val());

);

这将在您输入内容时显示文本框的值。

【讨论】:

以上是关于如何使用 JavaScript 或 JQuery 在 ASP.net 中获取生成控件的 ID的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JavaScript 或 jQuery 更改数组内对象的值?

如何使用 jquery 或 javascript 删除索引处的行? [复制]

如何使用 jQuery 或 JavaScript 设置底边距

如何使用 PHP 或 JavaScript/jQuery 禁用地址栏?

如何防止使用 jQuery 或 Javascript 进行双重提交?

当您使用 javascript 或 jquery 将鼠标悬停时,如何使图像或按钮发光?