Событие нажатия клавиши не работает

#jquery #keypress

#jquery #нажатие клавиши

Вопрос:

Я использую этот код, но событие нажатия клавиши не работает

  <script type="text/javascript">
    $(document).ready(function() {
        $('#txt_tempusername').keypress(function() {

            var href = $('#providerurl').val();
            href = href.toString().replace("{username}", $('#txt_tempusername').val());
            $('#btn_idgo').attr('href', href);

        });
    });

</script>
  

и это мой HTML

 <div class="Input_Div">
 <input type="text" id="txt_tempusername" />
 <a class='example1demo' id="btn_idgo">Goamp;</a>
 <input type="hidden" id="providerurl" />
</div>
  

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

1. не могли бы вы, пожалуйста, поделиться HTML-кодом? Попробуйте оповещение при нажатии клавиши и убедитесь, что у вас есть входные данные с идентификатором txt_tempusername

Ответ №1:

Рабочий пример здесь:
http://jsfiddle.net/ezmilhouse/6zfw8/2 /

Думаю, события работали нормально, но ваша обработка ‘href’ не сработала, потому что значение скрытых полей не было определено.

Исправил ваш код так, как, я думаю, вы хотели, чтобы он работал:

ваш html:

 <div class="Input_Div">
    <input type="text" id="txt_tempusername" />
    <a class='example1demo' id="btn_idgo">Go!</a>
    <input type="hidden" id="providerurl" value="http://provider-url-{username}.html" />
</div>
  

ваш js:

 $(document).ready(function() {
    $('#txt_tempusername').keyup(function() {
        var href = $('#providerurl').val().replace("{username}", $(this).val());
        $('#btn_idgo').attr('href', href);
    });
});
  

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

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

Ответ №2:

Поместите

 `alert("foo");`
  

войдите в функцию и посмотрите, появится ли окно сообщения. Если вы его не получите, элемент с идентификатором txt_tempusername не существует.