Как установить фокус на текстовое поле и / или элемент управления после нажатия на ярлык asp? - PullRequest
2 голосов
/ 16 июня 2010

Я хотел бы установить фокус на текстовом поле и / или элементе управления после нажатия на ярлык asp?Могут ли некоторые объяснить мне, как это сделать?Похоже на

<label for="txtBoxID">Blah</label>

Ответы [ 5 ]

3 голосов
/ 16 июня 2010

Вы также можете сделать это

<label for="<%=txtName.ClientID%>">Name:</label>
<asp:TextBox runat="server" ID="txtName"></asp:TextBox>

или по точке 4.

<label for="txtName">Name: </label>
<asp:TextBox runat="server" ID="txtName" ClientIDMode="Static"></asp:TextBox>

и избежать JavaScript.

1 голос
/ 14 августа 2017

Это лучший способ написать и избежать JavaScript

<p>

<asp:Label ID="lblName" runat="server" AssociatedControlID="txtFirstName" Text="First Name: " />

<asp:TextBox ID="txtFirstName" runat="server" />

</p>
0 голосов
/ 16 июня 2010

Я предполагаю, что вы хотите сделать это полностью на стороне клиента, чтобы избежать обратной передачи?

Вы можете использовать jQuery для установки фокуса.После добавления ссылки на скрипт в библиотеку jQuery вы можете использовать следующий код JavaScript на своей странице:

$(document).ready(function() {
     $("#labelId").click(function() {
          $("*[id$='txtBoxID']").focus()
     });
});

Селектор "* [id $ = 'txtBoxID']" позволяет выбрать ASP.NETидентификатор на стороне сервера вашего текстового поля без дополнительного кода.По сути, он говорит «выберите любой элемент DOM, чей идентификатор заканчивается на txtBoxId».

Вы можете добавить jQuery на свою страницу со следующей ссылкой на скрипт CDN:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
0 голосов
/ 16 июня 2010

Более обобщенное решение с использованием jQuery:

$(document).ready(function() {
     $("label[for]").click(function() {
          var inputid = '#' + $(this).attr('for');
          $(inputid).focus();
     });
});

Должно обрабатывать все метки, если вы правильно определите атрибут for.

0 голосов
/ 16 июня 2010

Вы можете сделать это, используя Javascript или jQuery.

<label for="txtBoxID" onClientClick="SetMyFocus()">Blah</label>

<javascript>
function SetMyFocus()
{
    document.getElementById("MyTextBox").focus();
}
</javascript>

Если вам нужно что-то сделать на стороне сервера по щелчку метки, вам придется обработать то же самое в коде и затем запустить клиентский скрипт после перезагрузки страницы. Используйте RegisterStartupScript для того же.

...