2014-10-21 3 views
0

У меня есть следующее текстовое поле на странице asp.net.Как очистить текстовое поле ASP.NET только при первом нажатии

<asp:TextBox ID="TtxtMessage" Text="Write Here" ForeColor="Control" runat="server" Height="300px" TextMode="MultiLine" Width="274px"></asp:TextBox> 

Текст по умолчанию в текстовом поле будет write here. Если пользователь нажимает, что я хочу очистить текст, и это должно произойти только при первом щелчке. Для последующих кликов содержимое, введенное пользователем, должно оставаться неизменным. Как это сделать, используя Javascript или Code Behind?

+0

Не уверен, что вы подразумеваете под «только первый нажмите «что происходит при третьем нажатии? – paqogomez

+0

на третьем или последующем щелчке текста, текст должен оставаться неизменным. (независимо от того, что ранее было введено пользователем –

+0

Это довольно просто с jquery ... посмотрите на http://viralpatel.net/blogs/default-text-label-textbox-javascript-jquery/, и вы можете легко сделать то же самое вещь с использованием вместо текстовых полей – weloytty

ответ

2

Вы можете использовать свойство-заполнитель как этот

<asp:TextBox ID="TtxtMessage" placeholder="Write Here" ForeColor="Control" runat="server" Height="300px" TextMode="MultiLine" Width="274px"></asp:TextBox> 
+0

Заполнитель-указатель HTML5, а не атрибут в текстовом поле asp. – paqogomez

+0

@QuakeCore , вы можете улучшить свой ответ, объяснив, что местозаполнитель ограничен HTML5 и современными браузерами, которые его реализуют. – Dalorzo

2

А заполнитель будет хороший ответ на это (см Add HTML5 placeholder text to a textbox .net).

Однако с помощью JQuery (заметьте, я не уверен, если asp.net еще искалечил элементы управления идентификаторы в оказанной HTML) что-то подобное может работать:

<script> 
$(document).ready(function() { 

    var firstClickOccurred = false; 

    $("#TtxtMessage").focus(function() { 
    if(!firstClickOccurred) { 
     $(this).val(''); 
     firstClickOccurred = true; 
    } 
    }); 

}); 
</script> 
Смежные вопросы