如何使用 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 禁用地址栏?