Microsoft JScript运行时错误:表单中需要对象

本文关键字:对象 表单 JScript 运行时错误 Microsoft | 更新日期: 2023-09-27 18:20:37

我有这个html代码:

<td align="center">
    <asp:Button ID="btnPesquisar" runat="server" Text="Pesquisar" Width="150px" CssClass="manu_btn" OnClientClick="return validaParamsEstatisticaTopSearch();" ToolTip="Prima para efectuar a pesquisa">
    </asp:Button>
</td>
<td style="font-size: 10px;">
    <asp:DropDownList ID="ddlTopSearch" runat="server" Width="250px" Font-Size="10px" AutoPostBack="true" ToolTip="Escolha o tipo de pesquisa">
    </asp:DropDownList>
</td>

以及我的功能:

function validaParamsEstatisticaTopSearch(){
var dT=document.getElementById("ddlTopSearch").value;
var dL=document.getElementById("ddlLingua").value;
var tT=document.getElementById("txtNTop");
var tdI=document.getElementById("txtDiaI");
var tmI=document.getElementById("txtMesI");
var taI=document.getElementById("txtAnoI");
var tdF=document.getElementById("txtDiaF");
var tmF=document.getElementById("txtMesF");
var taF=document.getElementById("txtAnoF");

if( dT=="*" )
{ 
    alert("Por favor escolha uma das opções de selecção de pesquisa ('TopSearch')!");
    return false;
}
return true;
}

它给了我一个"Microsoft JScript runtime error: Object required"。

我似乎不明白自己做错了什么。

Microsoft JScript运行时错误:表单中需要对象

当参数上的getElementById返回null,然后尝试使用该参数时,通常会出现此错误。

例如,在这行中,您可能没有找到ddlTopSearch

var dT=document.getElementById("ddlTopSearch").value;

因为asp.net在页面上呈现它的方式不同,所以要获得正确的/呈现的ID,请使用ClientID作为:

var dT=document.getElementById("<%=ddlTopSearch.ClientID%>").value;

其余id也是如此。

此外,我必须注意,下拉列表没有将value作为其他输入控件。要获得值,您必须使用以下javascript代码:

var e = document.getElementById("<%=ddlTopSearch.ClientID%>");
var sTopSearchValue = e.options[e.selectedIndex].value;

参考:是否使用JavaScript在下拉列表中获取所选值?

请提供更多详细信息

如果您在.aspx页面中使用母版页,那么您应该知道控件id在运行时发生了更改。

我认为在你的情况下,问题是由于错误的控制id。

单击此处获取有关由于母版页而更改控件id的更多信息。