2012-12-05 41 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> 

用戶將永遠不會知道其中的差別