私はonchangeイベントをキャプチャしようとしている2つのテキストボックスを持っています。これらのテキストボックスは、asp.netのupdatepanel内にあるユーザーコントロール内にあります。テキストボックステキストを変更するたびに、他の有用な情報を提供しない「Microsoft JScript実行時エラー:オブジェクトが予期される」というエラーが表示されます。ここでなぜasp.netユーザーコントロール内でtextbox onchangeイベントが正しく発生しないのですか?
コードです:
<script type="text/javascript">
function ResetOrientationImage() {
var width = (+document.getElementById('<%= txtWidth.ClientID %>').value);
var height = (+document.getElementById('<%= txtHeight.ClientID %>').value);
if (width > height) {
document.getElementById('<%= imgOrientation.ClientID %>').src = "images/buttons/Landscape.png";
} else {
document.getElementById('<%= imgOrientation.ClientID %>').src = "images/buttons/Portrait.png";
}
}
</script>
<asp:TextBox ID="txtWidth" runat="server" Width="50px" onchange="ResetOrientationImage()" Text="0"></asp:TextBox>
<asp:TextBox ID="txtHeight" runat="server" Width="50px" onchange="ResetOrientationImage()" Text="0"></asp:TextBox>
<asp:Image ID="imgOrientation" ImageUrl="~/images/buttons/Portrait.png" runat="server" />
私はそれはJavaScriptを使用して問題がなければなりませんと思ったが、私は、スタンドアロンの.aspxページにこの正確なコードを入れて、それがエラーなしで正常に実行されます。
EDIT Firebugは、実際のエラーで見たとき、ページが実行されたときResetOrientationImage機能が見つからないことです。 JavaScriptをユーザーコントロールからページ自体に移動すると、期待どおりに機能します。なぜ、javascriptがユーザーコントロールに存在しないのですか?ここ
何かがあなたと別の場所でjavascriptを台無しにしている、あなたがuserControlを追加しているページでエラーを探します – GregM
IE8 +のJavaScriptコンソールでエラーを指摘しましたか? 'document.getElementById( '<%= txtWidth.ClientID%>')。value'をデバッグしましたか?もう片方が戻りますか? – epascarello