-1

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

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

4

2 回答 2

0

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

例如在这一行,你可能没有找到ddlTopSearch

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

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

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

其余的 id 相同。

另外,我必须在这里注意,下拉列表没有value像其余的输入控件一样获得。要获取值,您必须使用此 javascript 代码:

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

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

于 2013-07-01T11:10:05.437 回答
-1

请提供更多细节

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

我认为在您的情况下,问题是由于错误的控制 ID 造成的。

单击此处了解有关因母版页而更改控件 ID 的更多信息。

于 2013-07-01T11:34:24.767 回答