Как мы видим, метка ASP.NET с идентификатором "tb_TA_2_6" отображается как элемент span
с идентификатором "ctl00_cph_Main_FormView1_tb_TA_2_6".
document.getElementById('ctl00_cph_Main_FormView1_tb_TA_2_6')
выберет элемент.
Вы также должны знать, что ваш ярлык создан в пределах ItemTemplate
в вашем FormView
и что он, скорее всего, отображает несколько элементов. Вот почему вы не можете получить доступ к tb_TA_2_6.ClientID
.
Теперь, какой элемент вы хотите, чтобы ваш Javascipt выбрал элемент span
из?
UPDATE
Похоже, вы пытаетесь создать таблицу и суммировать некоторые значения из каждой строки. Вот и мы;
ASP.NET UserControl
<table id="myTable">
<asp:FormView ID="FormView1" runat="server">
<ItemTemplate>
<tr>
<td><span>Textbox1</span></td>
<td><asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("question6i", "{0:$#,#0.00}") %>' class="myValue" /></td>
</tr>
</ItemTemplate>
</asp:FormView>
<tr>
<td><span>6. (iii) Total Value</span></td>
<td><asp:Label ID="TextBox1SumLabel" runat="server" Text='<%# Bind("question6iii", "{0:$#,#0.00}") class="sum" %>' /></td>
</tr>
</table>
HTML , пример ожидаемого выхода
<table id="myTable" class="styledTable">
<tr>
<td><span>Textbox1</span></td>
<td><input type="text" id="SomeGeneratedClientID_00" class="myValue" Value='60.00' /></td>
</tr>
<tr>
<td><span>Textbox1</span></td>
<td><input type="text" id="SomeGeneratedClientID_01" class="myValue" Value='40.00' /></td>
</tr>
<tr>
<td><span>6. (iii) Total Value</span></td>
<td><span ID="ctl00_cph_Main_TextBox1SumLabel" class="sum">100.00</span></td>
</tr>
</table>
Javascript , jQuery
$(document).ready(function() {
// Bind the change event to all ".myValue" elements
$('#myTable .myValue').change(function() {
// Find parent table element
var $table = $(this).closest('table');
// Update summary
sumTableValues($table);
});
});
var sumTableValues = function($table) {
var sum = 0;
// Iterate through all .myValue elements
$table.find('.myValue').each(function(index) {
console.log(index, $(this).val()); // DEBUG
// NOTE: Need to make sure the value is a number
// Add the value to the sum
sum += Number($(this).val());
});
console.log('sum', sum); // DEBUG
// Update the sum
$table.find('tr:last .sum').text(sum);
//$('<%= TextBox1SumLabel.ClientID %>').text(sum);
};
Создано демо для вас, чтобы поиграться, очень надеюсь, что это поможет вам в любом случае.