我有一个小的websolution,需要用户输入密码。我有两个输入框
<input type="password" runat="server" id="m_txtPassword1"/>
如果我将一些字符设置为控件的Value-property,如下所示:
m_txtPassword1.Value="someChars";
密码框呈现为空。没有显示子弹。如果我查看渲染的html源代码,也没有渲染任何value-tag。如果我将类型更改为
<input type="text" runat="server" id="m_txtPassword1"/>
显示字符。这是设计的吗?如何禁用此功能?
请注意,我不想在value-property中输入真正的密码,我只想向用户显示已经设置了密码,这是IMO最好的输入控件中的8个子弹。但为此,我需要设置控件的value-property。
更新
对于所有人来说,遇到同样的问题:我试图用相同的结果声明<asp:textbox id="m_txtPassword1" runat="server" TextMode="Password" />
。 m_txtPassword1.Attributes["value"]="someChars"
也没有帮助。
这似乎真的不可能。
作为一种解决方法,我将密码框声明为没有runat =“server”的普通html,并在标记中设置了value-property(通过代码隐藏中的两个属性)。不好,但我真的想告诉用户他已经输入了密码 另一种解决方法是在加载时通过javascript设置值。
答案 0 :(得分:1)
这是默认情况。您无法设置密码。
答案 1 :(得分:1)
我让它有效,
<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
答案 2 :(得分:1)
出于安全考虑,这是设计密码,因此密码不在 HTML纯文本。
现在,您可以编写javascript来设置文本框的value属性 在客户端,当然这仍然意味着你有密码 HTML中的纯文本。
以下是该页面的示例:
标记:
<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);
}
}
答案 3 :(得分:0)
Textbox11.Attributes.Add("Value",whatever_your_password_is)