javascript - 模糊事件不起作用时会出现错误

标签 javascript asp.net

在模糊事件不起作用时给出下面写的错误。我只是想将两个文本框中的值相乘。我做错了什么。

 TypeError: document.getElementById(...) is null .  
 var txt8 = document.getElementById("txtQuantity").value;   

<script type="text/javascript">
function CalcSellPrice2() {

    var txt8 = document.getElementById("txtQuantity").value;
    var txt9 = document.getElementById("txtUnit").value;
    document.getElementById("TextBox10").value = txt8 + txt9;
    document.getElementById(txtTotal).innerHTML = TotalPriceValue;
    }


</script>

<asp:TextBox ID="txtQuantity" runat="server" CssClass="span6" 
                                          onblur="CalcSellPrice2();"></asp:TextBox>

最佳答案

由于 TextBoxasp.net 控件,因此您应该必须使用 ClientID 才能访问您的 asp 控件,因为 asp .net 使用标记渲染 HTML,并将每个父命名容器的 ID 值与控件的 ID 值(请参阅 THIS )连接为

<%= txtQuantity.ClientID %>

所以你的脚本看起来像这样

var txt8 = document.getElementById(" <%= txtQuantity.ClientID %>").value;

访问 ASP.NET 控件的另一种方法是使用属性 ClientIDMode,一旦将其设置为 Static,它就不会连接每个父命名容器的 ID 值。所以您的 HTML 将如下所示。

<asp:TextBox ClientIDMode="Static" ID="txtQuantity" runat="server" CssClass="span6" onblur="CalcSellPrice2();"></asp:TextBox>

通过这种方式,您可以简单地访问问题中使用的 asp 控件,而无需使用 ClientID

关于javascript - 模糊事件不起作用时会出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17872942/

相关文章:

javascript - 如何在 async.js waterfall 流中传递上下文或属性?

javascript - 如何在不影响其他元素的情况下扩展一个DIV

javascript - Stripe API 的结帐对话框是否允许比字符串更复杂的描述?

c# - 使用 Telerik RadGrid 如何从客户端隐藏 GridHyperLinkColumn?

asp.net - 对 ASP.NET 并发请求进行基准测试结果不佳

javascript - Javascript 上的 indexOf 在数组上无法按预期工作

javascript - 不使用 JQuery 实现 onclick 事件

c# - MVC 下拉列表<>

asp.net - 403 - 禁止 : Access is denied. 您无权使用您提供的凭据查看此目录或页面

c# - 无法设置/获取 cookie 的值