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

时间:2013-07-01 10:35:37

标签: c# javascript asp.net jscript

我有 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”。

我似乎无法弄清楚我做错了什么。

2 个答案:

答案 0 :(得分:0)

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;

参考: Get selected value in dropdown list using JavaScript?

答案 1 :(得分:-1)

请提供更多详情

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

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

Click here了解有关因母版页而导致控件ID更改的详细信息。