Password-Box не показывает никакого контента - PullRequest
0 голосов
/ 13 января 2011

У меня есть небольшое веб-решение, которое требует от пользователя ввода пароля. У меня есть два поля ввода

<input type="password" runat="server" id="m_txtPassword1"/>

Если я установлю несколько символов в свойстве Value элемента управления следующим образом:

m_txtPassword1.Value="someChars";

Поле пароля пусто. Пули не показаны. Если я загляну в визуализированный html-источник, то также не было отображено никакого тега значения. Если я изменю тип на

<input type="text" runat="server" id="m_txtPassword1"/>

символы показаны. Это по замыслу? Как я могу отключить эту функцию?
Пожалуйста, обратите внимание, я не хочу вставлять реальный пароль в свойство value, я только хочу показать пользователю, что пароль уже установлен, и это лучше всего сделать с использованием 8 маркеров в элементе управления вводом. Но для этого мне нужна возможность установить значение-свойство элемента управления.

Обновление

Для всех, имеющих одну и ту же проблему: я попытался объявить <asp:textbox id="m_txtPassword1" runat="server" TextMode="Password" /> с тем же результатом. Также m_txtPassword1.Attributes["value"]="someChars" не помогло.

Кажется, это действительно невозможно.

В качестве обходного пути я объявил поля пароля как обычный html без runat = "server" и установил значение-свойство в разметке (через два свойства из выделенного кода). Не приятно, но я действительно хочу показать пользователю, что он уже ввел пароль.
Другой обходной путь - установить значение с помощью JavaScript при загрузке.

Ответы [ 4 ]

1 голос
/ 13 января 2011

Я делаю это работает,

<html>
<head>
<script type="text/javascript">
function alertValue()
{
alert(document.getElementById("password1").value);
}
function setpassword()
{
   password1.value="someChars";
}
</script>
</head>
<body>

<form>
<input type="password" id="password1" value="" />
<input type="button" id="button1" onclick="alertValue()" value="Show default value" />
<input type="button" id="button2" onclick="setpassword()" value="Set value" />

</form>

</body>
</html>

Попробуйте это: http://jsbin.com/ocexo5

1 голос
/ 13 января 2011

Это специально для обеспечения безопасности, чтобы пароль не HTML в текстовом формате.

Теперь вы можете написать javascript, чтобы установить значение свойства текстового поля. на клиенте, конечно, это будет означать, что у вас есть пароль в обычный текст в HTML.

Вот пример страницы:

Markup:

<script type="text/javascript">
function setPwd()
{
    var Pwd = "<%=Pwd %>";
    var txtText = document.getElementById("MainContent_txtText");
    txtText.value = Pwd;
 }
</script>
<input type="password" id="txtText" runat="server"/>

И код-позади:

public partial class _Default : System.Web.UI.Page
    {
        public string Pwd;
        protected void Page_Load(object sender, EventArgs e)
        {

            Pwd = "password";
            ClientScript.RegisterStartupScript( this.GetType(),"somescript","setPwd();",true); 
        }
    }
1 голос
/ 13 января 2011

Это по умолчанию.Вы не можете установить пароль.

0 голосов
/ 22 января 2011
Textbox11.Attributes.Add("Value",whatever_your_password_is)
...