странное поведение обработчика фокуса

0

Это мой код:

<script type="text/javascript">
    $(document).ready(function () {
        $("#txt1").focusout(function () { $("#lbl1").text("aaaa"); });
        $('#btn1').click(function (){ alert("clicked"); });
    });
</script>

<asp:Label ID="lbl1" runat="server" ClientIDMode="Static" />
<asp:TextBox ID="txt1" runat="server" ClientIDMode="Static"/>
<asp:Button ID="btn1" runat="server" ClientIDMode="Static"/>

Я запускаю свой код и выполняю следующие действия:
1. нажмите мышью внутри txt1
2. нажмите мышью на btn1
Предупреждающее сообщение не появляется. Он появляется, только если я снова нажму кнопку.
Это происходит только тогда, когда я меняю lbl1 текст на фокус.
Почему изменение текста приводит к тому, что событие клика не запускается?

  • 0
    Вы пробовали: $('#btn1').click(function (){ $("#txt1").blur(); alert("clicked"); });
  • 0
    Это решит вашу проблему: $('#btn1').click(function (){ alert("clicked"); }).click(); но я не думаю, что это хорошая идея ....
Теги:
onclick

1 ответ

0
Лучший ответ

На самом деле ваш скрипт не привязывает событие click к кнопке. Потому что он имеет атрибут runat=server. Таким образом, он изменит идентификатор элементов во время рендеринга. вы должны либо использовать имя класса, либо clientID вместо id.

используя имя класса,

 <script type="text/javascript">
 $(document).ready(function () {
    $(".txt1").focusout(function (e) {
        e.stopPropagation();
        $(".lbl1").text("aaaa");
    });
    $('.btn1').click(function (e) {
        e.stopPropagation();
        alert("clicked");
    });
});
</script>

<asp:Label ID="lbl1" CssClass="lbl1"  runat="server" />
<asp:TextBox ID="txt1" CssClass="txt1" runat="server" />
<asp:Button ID="btn1" CssClass="btn1" runat="server" />

редактировать

Проблема заключается в положении метки. Пожалуйста, проверьте этот скрипт

  • 0
    это не история. У меня ClientIDMode = "Static" на всей странице.
  • 0
    ты проверял это? Не работает, все та же проблема!
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню