Можно ли захватить событие щелчка texbox?

#javascript #asp.net

#javascript #asp.net

Вопрос:

Извините, что снова беспокою вас по этой проблеме.

Решение, которое я принял от Джеймса Джонсона, на самом деле не сработало, потому что оно не позволяет мне вводить какие-либо данные в текстовое поле, а это не то, что нам нужно.

Мы хотели бы отобразить сообщение только как справочную информацию. Другими словами, мы просто хотели бы посоветовать пользователю установить флажок, если он / она хочет получить электронное письмо.

Ниже приведено то, что я придумал на основе ссылки hel от Rob. Это работает. Единственная помощь, которую я хотел бы получить от вас, — это заставить сообщение открыться в новом окне. Пример сообщения, которое я использую, — это Focus Fire .

Не могли бы вы помочь?

Это последний код:

 <head>
<style type="text/css">span id='1' {display:none;}</style>
<script type="text/javascript" src="jqueryMsg.js"></script>
</head>
<asp:TextBox ID="chck1" runat="server" Width="75px"></asp:TextBox>
<span id='1'>focus fire</span>
<script type="text/javascript">window.onload = (function () { 
try{    $("input:text").focus(function () {               
$(this).next("span").css('display','inline').fadeOut(1000);    });            
}catch(e){}});</script>
  

Комментарии:

1. это возможно. что вы пробовали?

2. Сначала вы сказали: «Можно ли щелкнуть texbox?» затем позже спросил «как только пользователь нажимает на текстовое поле», что это такое? Есть куча событий: onClick, onHover, onFocus…

3. Привет, Чад, мне жаль, так как я могу что-то перепутать. мы хотели бы иметь возможность давать пользователю инструкции, как только пользователь нажимает на текстовое поле для ввода текста.

Ответ №1:

Добавьте ClientIDMode атрибут -в текстовое поле, чтобы JavaScript мог получить к нему доступ через идентификатор, не возясь с ctrwhateverstrangeidaspnetproduces:

 <asp:TextBox ID="instruct" runat="server" Width="75px" ClientIDMode="static">
  

А затем обработать событие щелчка (в этом примере используется jQuery, вы также можете использовать необработанный JavaScript):

 $(document).ready(function() {
    $('#instruct').click(function() {
        alert('.click()-handler called.');
    });
});
  

Комментарии:

1. Большое вам спасибо, Деннис. В этой строке вызывается alert(‘.click ()-обработчик.’); здесь я добавляю inx в такие структуры, как «Пожалуйста, установите флажок справа, если вы хотите получить подтверждение? Я очень новичок в javascript.

2. Да, функция оповещения может быть заменена любым кодом javascript. Пока оно находится внутри функции, оно выполняется всякий раз, когда щелкает элемент управления.

Ответ №2:

Вы могли бы обернуть текстовое поле в ПРОМЕЖУТОК и добавить onmouseover событие к промежутку.

 <span onmouseover="alert('This is a TextBox');"><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></span>
  

Комментарии:

1. Привет, Джеймс, ваше решение пока является наиболее перспективным просто из-за простоты использования. Я пытаюсь придать ему стиль, чтобы приблизиться к флажку. Это просто слишком далеко от текстового поля. Спасибо

Ответ №3:

Посмотрите на обработчик событий onFocus () для JavaScript, который будет выполнять предоставленную функцию при фокусировке на нужном текстовом поле, так как этот метод будет работать, если пользователь нажимает или вкладывает в нужное текстовое поле.

Или вы можете использовать focus() в jQuery:

 $('#instruct').focus(function(){
    // Insert desired response here
    alert('Your instructions');
});
  

Комментарии:

1. Спасибо, Роб, мы бы предпочли, чтобы оно не имело фокуса. Причина в том, что мы используем просто как инструкцию, а не для проверки чего-либо.

Ответ №4:

Один из способов — добавить его в свой codebehind в событие загрузки страницы, например:

инструктировать.Атрибуты.Add(«onclick», «yourJavascriptFunction();»)

Причина добавления в событие загрузки страницы заключается в том, что добавленные атрибуты теряются во время обратной передачи.

Ответ №5:

Или вы могли бы вместо этого использовать событие onFocus (в случае, если пользователь переходит в текстовую область вместо того, чтобы нажимать на нее, я предполагаю, что вы также хотите отобразить свое сообщение):

 $('textarea').focus(function(){
    alert('hi');
}):
  

Комментарии:

1. Спасибо, Алекс. Единственное, что меня все еще смущает, это все, что мне нужно сделать еще?

2. Спасибо всем за ваше время и невероятную помощь. Единственный способ, который я могу понять, и который я могу использовать, — это способ Джеймса Джонсона. Еще раз спасибо экспертам за вашу помощь.