Ссылка на ввод (тип = пароль) в JavaScript (ASP.NET) - PullRequest
0 голосов
/ 13 июля 2011

У меня есть это:

<input type="password" id="txtPassword" name="txtPassword" />

, и я хочу сделать что-то вроде этого:

var password = document.getElementById("<%= txtPassword.ClientID %>").value();

, но оно говорит мне: «txtPassword» не объявлен ».Я пробовал это:

var pswd = $find('txtPassword').value();

но я получаю, что '' null 'является нулем или не объектом. Итак, я попробовал это:

var pswd = $find('txtPassword').value();

но я получил то же самоеМой элемент управления вводом находится в этом беспорядке:

    <asp:Panel ID="pnlPassword" style="display: none" runat="server">
<div class="PasswordPopup">
            <div id="PopupHeader">&nbsp;</div>
            <div class="Controls">
                <center><table><tr>
                    <td>Please enter your password:</td><td><input type="password" id="txtPassword" name="txtPassword" /></td></tr>
                <tr><td>&nbsp;</td>
                    <td><asp:button name="btnOK" id="btnOK" runat="server" text="OK" />&nbsp;&nbsp;<asp:button id="btnCancel" runat="server" text="Cancel" /></td></tr></table></center>
            </div>
 </div>
</asp:Panel>

Как я могу ссылаться на этот элемент управления вводом в моей функции javascript?

Спасибо,

Джейсон

Ответы [ 3 ]

2 голосов
/ 13 июля 2011

Вам необходимо изменить введенный пароль на runat="server", чтобы иметь возможность доступа из серверного скрипта ...

<input runat="server" type="password" id="txtPassword" name="txtPassword" />

В качестве альтернативы вы можете использовать элемент управления ASP.NET TextBox с TextMode="Password"...

<asp:TextBox runat="server" id="txtPassword" TextMode="Password" />
1 голос
/ 13 июля 2011

Элементы управления на стороне сервера (то есть runat = 'server') будут генерировать идентификаторы при отображении элемента управления в HTML, тогда как элементы управления на стороне NON будут такими, как есть.

С решением Quintin вы должны бытьвозможность использовать Control.ClientID для получения доступа к вашему элементу управления.

Причиной возникновения проблем является синтаксис.

Solution1 (Quintin's):

  • Добавить runat= 'сервер' для вашего элемента управления
  • var password = document.getElementById ("<% = txtPassword.ClientID%>"). value;

Solution2 (используйте jQuery):

  • jQuery не требуется нотация поиска для именованных элементов
  • var password = $ ('txtPassword'). Value;

Solution3 (используйте DOM): - var пароль = document.getElementById ('txtPassword'). value;

1 голос
/ 13 июля 2011

Вы не указываете runat = "server" для вашего, так что этого должно быть достаточно:

  var password = document.getElementById("txtPassword").value();

Если вы хотите использовать его в коде сервера, добавьте runat = "server"

...