在模糊事件不工作时会出错

时间:2013-07-26 04:31:37

标签: 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>

2 个答案:

答案 0 :(得分:3)

由于TextBoxasp.net控件,因此您必须使用ClientID来访问您的asp控件,因为asp.net带有标记的rander HTML并连接{{1具有控件的ID值的每个父命名容器的值(请参阅THIS

ID

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

<%= txtQuantity.ClientID %>

访问var txt8 = document.getElementById(" <%= txtQuantity.ClientID %>").value; 控件的另一种方法是使用属性ASP.NET,一旦将其设置为ClientIDMode,它就不会连接每个父命名容器的Static值。所以你的HTML将如下所示。

ID

通过这种方式,您只需访问您在问题中使用的asp控件,而无需使用<asp:TextBox ClientIDMode="Static" ID="txtQuantity" runat="server" CssClass="span6" onblur="CalcSellPrice2();"></asp:TextBox>

答案 1 :(得分:0)

将属性 ClientIDMode =“静态”添加到文本框

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