我要求在asp.net中创建用户名文本框。 格式如下:
DOMAIN-NAME/username
现在DOMAIN-NAME
默认情况下应该是硬编码且不可编辑的文本。用户只能输入用户名,但无法删除DOMAIN-NAME
。
我怎样才能实现这个目标?
答案 0 :(得分:1)
如果您希望域名是硬编码且不可编辑的,则需要将其放在服务器上。
在page_load上:
string domainName = @"DEFAULT-NAME/";
string userName = TextBoxId.Value; //do some server side checks on value before processing it though
string finalUserName = domainName + userName;
即使您在页面上放置了一个辅助只读文本框,也不要相信不可编辑文本框收到的值是您所期望的,因为POST变量可以很容易地操作。在服务器上添加域,并在文本框附近的标签页面上显示它 - 如果需要 - 。
答案 1 :(得分:0)
为什么你需要在同一个文本框中同时使用它们?
域名不可编辑(无效)textbox
,用户名不可编辑textbox
吗?
否则您可以将两者放在同一个文本框中。 但要确保字符串
用户未使用验证(域名/
JQUERY
或Javascript
)删除
答案 2 :(得分:0)
单击文本框,删除域名,然后在离开textBox时附加域名。或者将DOMAIN-NAME放入标签并将textBox放在一边吗?
答案 3 :(得分:0)
您可以将域名放在文本框左侧的标签中。
如果必须在文本框中显示域名,则必须使用一些javascript来屏蔽它。
可能有代码可以帮助,例如,如果你使用JQuery,这种事情:
答案 4 :(得分:0)
你做不到。文本框已禁用,这意味着您无法编辑任何内容或启用,这意味着您可以编辑所有内容。大多数具有类似要求的应用程序都会在文本框前面使用标签来显示不可编辑的部分。
答案 5 :(得分:0)
选项1:在文本框之前显示标签,并在阅读时使用@LonWolf的代码
选项2:显示文本框背景图像和左边距。在图像中,您可以提供DEFAULT-Name
选项3:使用一些jquery插件,如:http://twitter.github.com/bootstrap/base-css.html#forms,请参阅扩展表单控件,该控件显示相当不错的文本框前缀和后缀
答案 6 :(得分:0)
好吧,如果你想看看这些要求:“似乎有一个带有硬编码域名的文本框。”然后试试这个:
<html>
<style type="text/css">
span.fakeTextBox{
border: 2px inset #EBE9ED;
display: inline-block;
padding: 3px;
font-family:"Times New Roman",Georgia,Serif;
}
span.fakeTextBox input{
border: none;
outline:none;
}
</style>
<body>
<span class="fakeTextBox">
MyDomain\<input type="text" >
<span>
</body>
</html>
用户永远不会知道差异