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>

它也有效。但我也需要传递第二个对象,我已经尝试过:

onchange="UpdateOstan(this, IdsecondObj);"

失败了,这也是

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

不工作。所以请让我知道如何将 html 对象传递给不在同一页面上的 Javascript。 我根本不想使用 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 回答