在模糊事件不起作用时给出下面写的错误。我只是想将两个文本框中的值相乘。我做错了什么。
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>
最佳答案
由于 TextBox
是 asp.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/