Почему javascript не может получить asp:Label innerText?
У меня есть две метки: имя пользователя и адрес электронной почты. Я использую их для извлечения их содержимого и передачи их в качестве параметров метода.
var lblEmail = $get('<%= lblEmail.ClientID %>');
var email = lblEmail.innerText;
var lblUsername = '<%= lblUsername.ClientID %>';
var username = lblUsername.innerText;
Метка электронной почты определяется так же, как и метка имени пользователя, но для этого последнего я не могу получить значение, innertext возвращает undefined.
...
<td class="inputField">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<asp:Label ID="lblUsername" CssClass="font1" runat="server"/>
</tr>
</table>
</td>
...
...
<td class="inputField">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<asp:Label runat="server" ID="lblEmail" CssClass="font1" />
</td>
...
Что может быть возможной причиной, чтобы оправдать происходящее? Как я могу решить эту проблему? Я вижу на странице оба значения меток, я устанавливаю их на одном месте (при загрузке страницы).
2 ответа
Решение
Поскольку вы определили только идентификатор клиента для метки userName:
var lblEmail = $get('<%= lblEmail.ClientID %>');
var email = lblEmail.innerText;
var lblUsername = '<%= lblUsername.ClientID %>';
var username = lblUsername.innerText;
Во второй части вашего кода
var lblEmail = $get('<%= lblEmail.ClientID %>');
var email = lblEmail.innerText;
var lblUsername = '<%= lblUsername.ClientID %>';
var username = lblUsername.innerText;
$ get call отсутствует. Должно быть
var lblEmail = $get('<%= lblEmail.ClientID %>');
var email = lblEmail.innerText;
var lblUsername = $get('<%= lblUsername.ClientID %>');
var username = lblUsername.innerText;