簡體   English   中英

C# - 如何在焦點上更改文本框的值

[英]C# - How to change value of textbox on focus

我正在用 C# 編寫一個應用程序。 我想在用戶單擊(聚焦)文本框后替換 TEXT 屬性的值。 當他們單擊以編輯文本框時,我想將 TEXT 值設置為空白而不是“在此處輸入名稱”一詞。

前端:

<asp:TextBox Text="ENTER NAME HERE" OnClick="MyTextboxID_OnClick" ID="MyTextboxID" runat="server"></asp:TextBox>

代碼隱藏:

protected void MyTextboxID_OnClick(object sender, EventArgs e) 
{
    MyTextboxID.Text = "";
}

我試圖找到這個問題的答案,但答案並不完全符合我想要做的。

我希望 C# 有類似於 Javascript 的“OnClick”或“OnFocus”事件的東西。 出於說明目的,我將 OnClick 事件添加到文本框。 此 OnClick 事件不起作用。

預先感謝您的幫助!

請記住,ASP.NET 主要是服務器端的 在 C# 中運行的操作需要回發到服務器。 使用 AJAX 可以在一定程度上減輕這種情況對頁面的影響,但這就是為什么在 ASP 控件之外看不到“OnClick”事件的原因。

但是,您仍然可以使用 Javascript“OnClick”事件。 由於 Javascript 在客戶端上運行,並且此實例中的交互完全在客戶端上處理,因此您應該使用它。

如果您不習慣使用 Javascript,您可能需要查看TextBoxWatermark服務器端控件。

它是可用的NuGet

<asp:TextBox OnClick="MyTextboxID_OnClick" 
    ID="MyTextboxID" runat="server">
</asp:TextBox>

<ajaxToolkit:TextBoxWatermarkExtender ID="TBWE2" runat="server"
    TargetControlID="MyTextboxID"
    WatermarkText="ENTER NAME HERE"
    WatermarkCssClass="watermarked" />

為什么不使用占位符屬性,而根本不必擔心替換文本。 這將顯示文本框何時為空但在焦點上消失

您應該簡單地使用以下Placeholder="Enter text here."

選項一:

<asp:Textbox id="txtName" runat="server" placeholder="Enter name here." />

選項二:

$("#<%= txtName.ClientId %>").setAttribute('placeholder', 'Enter name here.');
$("#<%= txtName.ClientId %>").attr('placeholder', 'Enter name here.');

對於 Javascript 實現,您只需將它放在您的視圖中並將其包裝在: <script type="text/javascript"></script> 這些是顯示焦點清晰的文本的理想方法。

您還可以使用Tooltip 希望這些例子對你有所幫助。 重要說明,我對 IE 8 與占位符的兼容性沒有任何問題。 此外,這些方法不會強制由於服務器端而可能發生的發。 這將迫使您執行回發或實施更新面板/Ajax以隱藏回發

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM