我有 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
”。
我似乎无法弄清楚我做错了什么。
答案 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;
答案 1 :(得分:-1)
请提供更多详情
如果您在.aspx页面中使用母版页,那么您应该知道控件ID在运行时已更改。
我认为在你的情况下问题是由于错误的控制ID。
Click here了解有关因母版页而导致控件ID更改的详细信息。