2

ぼかしイベントが機能しないと、以下に書かれたエラーが発生します.2つのテキストボックスの値を単純に掛けたいだけです.何が間違っていますか.

 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>
4

2 に答える 2

3

コントロールなので、asp コントロールにアクセスするために使用する必要があります。これTextBoxは、マークアップを使用して HTML をランダーし、各親ネーミング コンテナーの値をコントロールの値と連結するためです ( THISを参照) 。asp.netClientIDasp.netIDID

<%= txtQuantity.ClientID %>

したがって、スクリプトは次のようになります

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

また

ASP.NETコントロールにアクセスするもう 1 つの方法は、 attribute を使用することです。属性ClientIDModeを設定すると、各親の名前付けコンテナーの値がStatic連結されなくなります。IDしたがって、HTML は次のようになります。

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

このようにして、質問で使用したように、使用せずにaspコントロールに簡単にアクセスできますClientID

于 2013-07-26T04:34:50.833 に答える
0

属性ClientIDMode="Static"をテキストボックスに追加します

<asp:TextBox ClientIDMode="Static" ID="txtQuantity" runat="server" CssClass="span6" 
                                          onblur="CalcSellPrice2();"></asp:TextBox>
于 2013-07-26T04:43:28.403 に答える