0

HTMLページにコードがあり、動作しています:

document.getElementById('<%=IdOstan.ClientID %>').options.length = 0;

これは関数の一部です。オブジェクトが見つかり、コードが実行されます。しかし、コードを別の js ファイルに移動する場合は、次を使用してファイルを呼び出します。

<script src="../../../../Script/AjaxCall.js" type="text/javascript"></script>

オブジェクトが見つかりません。私の結論は、同じファイル上のオブジェクトは document.getElementById を呼び出すことで見つけることができるということでしたが、Js に渡されたオブジェクトについてはそうではなく、正常なようです。次のようにJS関数を呼び出しながら、オブジェクトを渡そうとしました:

<asp:DropDownList ID="IdLand" runat="server" onchange="UpdateOstan(this);" 
     DataTextField="NameLand" DataValueField="IdLand" ViewStateMode="Enabled" 
     AutoPostBack="false">
</asp:DropDownList>

それも機能します。しかし、私が試した2番目のオブジェクトも渡す必要があります:

onchange="UpdateOstan(this, IdsecondObj);"

失敗した、これも

onchange="UpdateOstan(this, document.getElementById('IdSecondObject'));"

動作していません。同じページにないJavascriptにhtmlオブジェクトを渡す方法を教えてください。 jQueryファイルをヘルパーとして使用したくありません。 ありがとう

4

1 に答える 1

0

非表示の入力を使用して IdOStan.ClientID の ID 値を保存し、外部 JavaScript から ID 名のその値を取得すると、そのオブジェクトにアクセスできます。

<input id="MyHidden" value="<%=IdOstan.ClientID %>" />

外部 JS ファイル内。

var id = document.getElementById('MyHidden').value;
var IdOstan = document.getElementById(id);

これで、IdOstan が探しているオブジェクトになります。

于 2013-02-22T04:44:07.570 に答える