【问题标题】:Jquery function is not working for dynamically added rows in gridviewJquery函数不适用于gridview中动态添加的行
【发布时间】:2015-04-01 16:12:31
【问题描述】:

我有一个动态添加行的网格视图。当文本框更改时,我需要使用 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>

提前致谢

【问题讨论】:

标签: javascript jquery asp.net gridview


【解决方案1】:
<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>

我使用上述函数找到了解决方案。 谢谢

【讨论】:

    【解决方案2】:

    由于您已经通过上面给出的答案解决了您的问题,但这里进行了改进,您使用了在 jQuery 最新版本中已弃用的 .live() 方法。

    使用 .on() 而不是 .live() 来附加事件处理程序。 改进后的代码如下所示

    $('#<%=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);
            }
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2011-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-27
      • 2021-07-09
      • 2019-03-09
      相关资源
      最近更新 更多