我有一个动态添加行的gridview。当文本框改变时,我需要使用jquery进行一些计算。下面是我的jquery函数。但它没有触发。有没有其他方法来找到控件。请帮忙
<script>
$(function () {
$('#<%=gvConsumableUsageAdd.ClientID %>').find('input:text[id$="txtQuantity"]').keyup(function () {
debugger;
var price = $('#<%=gvConsumableUsageAdd.ClientID %>').find('span[id$="lblUnitPrice"]').text();
var qty = $('#<%=gvConsumableUsageAdd.ClientID %>').find('input:text[id$="txtQuantity"]').val();
var total = parseFloat(price * qty);
$('#<%=gvConsumableUsageAdd.ClientID %>').find('span[id$="lbtTotalAmount"]').text(total.toFixed(2));
});
});
</script>
先谢谢
答案 0 :(得分:0)
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$("[id*=txtQuantity]").live("keyup", function () {
if (!jQuery.trim($(this).val()) == '') {
if (!isNaN(parseFloat($(this).val()))) {
var row = $(this).closest("tr");
var Quantity = parseFloat($(this).val());
var unitPrice = parseFloat($("[id*=lblUnitPrice]", row).html());
var Total = Quantity * unitPrice;
$("[id*=lbtTotalAmount]", row).html(Total);
}
}
}
);
</script>
我使用上述功能找到了解决方案。 谢谢
答案 1 :(得分:0)
由于你已经用上面给出的答案解决了你的问题,但是这里有一些改进,你使用了jQuery最新版本中不推荐使用的.live()
方法。
而不是 .live()
使用 .on()
来附加事件处理程序。
改进的代码看起来像
$('#<%=gvConsumableUsageAdd.ClientID %>').on('input', '[id*=txtQuantity]', function () {
var self = $(this);
if (!jQuery.trim(self.val()) == '') {
if (!isNaN(parseFloat(self.val()))) {
var row = self.closest("tr");
var Quantity = parseFloat(self.val());
var unitPrice = parseFloat($("[id*=lblUnitPrice]", row).html());
var Total = Quantity * unitPrice;
$("[id*=lbtTotalAmount]", row).html(Total);
}
}
});