2012-12-05 40 views
1

我有要求在asp.net中创建用户名文本框。 其中的格式是这样的:部分硬编码文本框

DOMAIN-NAME/username 

现在​​应该通过硬编码和不可编辑的默认文本。用户只能输入用户名,但不能删除​​。

我该如何做到这一点?

回答

0

为什么你需要他们在同一个文本框? 对于用户名来说,通过域名不可编辑(不活动)textbox,并且可编辑textbox

或者你可以把它们放在同一个文本框中。 但要确保字符串

域名/

心不是由用户删除通过验证(JQUERYJavascript

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变量很容易被操纵。在服务器上添加域,并在文本框附近的标签的页面上显示它 - 如果需要的话。

0

点击文本框,删除域名,然后当他们离开文本框追加域名。或者把DOMAIN-NAME放到一个标签中,并把它放在一边呢?

0

您可以将域名放在文本框左侧的标签中。

如果它绝对必须在文本框中显示域名,则必须使用一些javascript来掩盖它。

有可能是代码在那里,会有所帮助,例如,如果你正在使用JQuery,这种事情:

http://digitalbush.com/projects/masked-input-plugin/

+0

你给的链接是非常接近我的要求。 谢谢。 试试这个n看看。 –

0

你不能。文本框被禁用,这意味着您不能编辑任何内容或启用,这意味着您可以编辑所有内容。大多数具有类似需求的应用程序在文本框前使用标签来显示不可编辑的部分。

0

选项1:显示文本框的背景图像和左填充:读取

选项前2文本框,并使用代码通过@LonWolf显示标签。在图像可以提供默认的名称

方案3:使用一些jQuery插件喜欢这里:http://twitter.github.com/bootstrap/base-css.html#forms,请参阅扩展形式的控制,显示相当不错的文本框中的前缀和后缀

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> 

用户将永远不会知道其中的差别