3

ASP.NETフォーム(C#)がありますが、JSメソッドを実行する必要があるこのボタンをクリックすると、「Microsoft JScriptランタイムエラー:'document.getElementById(...)'がnullであるか、オブジェクトではありません」というエラーが表示されます。

動作するはずなので、これは奇妙です。

                <asp:LinkButton ID="btnDriverPopulate" runat="server" Text="" Height="55px" Width="172px" CssClass="btnMTO" 
                    OnClientClick="readLicense()" ToolTip="Check Driver" /> 

ここにテキストボックスコード

 <asp:TextBox ID="DriverLast" runat="server" Width="180px" Text='<%# Eval("Last") %>' ToolTip="Enter driver last name"></asp:TextBox>
                                    <cc:TextBoxValidator ID="valDriverLast" runat="server" AllowBlank="false" Display="dynamic" ControlToValidate="DriverLast" ValidationGroup="ValGrpDriver"
                                        CorrectFormat="Please enter in alphanumeric characters only." FieldName="Last Name" RegString="^[a-zA-Z0-9\s.,\-']+$" />

テキストボックスの値を「hi」に設定する必要があるJS関数readLicense

document.getElementById("DriverLast").value = "hi";
4

2 に答える 2

2

マークアップには、IDがDriverLastの入力がありますか?ASP.NETは、このコントロールのIDをそのコンテナーID、つまり_ctl_DriverLastに変更する場合があります。したがって、プロパティを使用できClientIdます。

試す:

document.getElementById(<%=DriverLast.ClientId %>.value = "Hi";
于 2012-06-13T14:36:16.767 に答える
1

レンダリングされたクライアントIDは、必ずしもサーバーコントロールIDと同じであるとは限りません。ClientIDModeこのプロパティを使用して、この動作を変更できます。

document.getElementById("<%= DriverLast.ClientID %>").value = "hi";
于 2012-06-13T14:34:24.910 に答える