2013-07-01 1 views
-1

У меня есть этот HTML код:Microsoft JScript ошибка выполнения: Требуется объект в форме

<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

где ddlTopSearch в html-коде? Post ur полный html-код – iJade

+0

вам нужно получить ClientId, а не реальный идентификатор выпадающего списка, поскольку он будет отличаться всегда, пока не укажет его явно – rajansoft1

ответ

0

Эта ошибка обычно появляется, когда getElementById возвращает значение null в параметре, и затем вы пытаетесь использовать этот параметр.

Например, на этой линии, вы, вероятно, не нашли ddlTopSearch

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

потому что asp.net сделать его на странице diferently, чтобы получить его правильно/оказанные ID использовать ClientID как:

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

То же самое с остальными идентификаторами.

Кроме того, я должен отметить, что выпадающий список не получил value в качестве остальных элементов управления вводом. Для того, чтобы получить значение, которое вы должны использовать этот код: яваскрипт

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

ссылка: Get selected value in dropdown list using JavaScript?

+2

Да, исключение было вызвано этим линия. Я попробую. Благодарю. Почему ClientID? – bruno

+0

@bruno Почему ClientID, потому что это тот, который возвращает id, как показано на html asp.net. Смотри также: http://stackoverflow.com/questions/5763557/accessing-control-client-name-and-not-id-in-asp-net/5763632#5763632 – Aristos

+0

Я понял, но я все еще получаю JScript ошибка выполнения. – bruno

-1

Просьба представить более подробную информацию

Если вы используете главную страницу на странице .aspx, то вы должны знайте, что управляющий идентификатор изменяется во время выполнения.

Я думаю, что в вашем случае проблема связана с неправильным идентификатором управления.

Click here для получения дополнительной информации об изменении идентификатора управления из-за главной страницы.

+0

Я использую MasterPage, и идентификатор динамически меняется. – bruno

+0

, то вы можете использовать это: document.getElementById ("% = ddlTopSearch.ClientID%>"). value; – Suri