Событие onkeydown для HTML-формы, не запускаемой в IE 7 или FF 3 - PullRequest
0 голосов
/ 15 мая 2009

Я пишу приложение asp.net и у меня есть форма, в которой пользователь должен нажать клавишу, чтобы текстовое поле стало видимым, чтобы он / она мог войти в систему. Когда клавиша нажата, я хочу, чтобы метка исчезла, а текстовое поле стало видимым. По какой-то причине событие onkeydown не запускается в FF или IE, но оно прекрасно работает в Chrome. Приложение будет запущено на терминале AML с использованием браузера Links, но я не могу сейчас тестировать на этой платформе. Вот мой код:

<form id="form1" runat="server" onkeydown="CheckKey(event.keyCode)" 
enableviewstate="True" submitdisabledcontrols="False" visible="True">

<script type="text/javascript">

    function SetVisibility() {
        var txtbx = document.getElementById("txtbx_login")
        txtbx.style.display = "none";
        var form = document.getElementById("form1")
    }

    function CheckKey(keycode) {
        if (keycode == 113) {
            var txtbx = document.getElementById("txtbx_login")
            txtbx.style.display = "";
            var lbl = document.getElementById("lbl_login")
            lbl.style.display = "none";
        }
    }

</script>

****** другие элементы формы ******

</form>

Единственный способ заставить событие onkeydown работать, это если элемент управления textbox показывает и имеет фокус. Я что-то пропустил? Спасибо за помощь!

1 Ответ

3 голосов
/ 15 мая 2009

Мне кажется, проблема в том, что проверка формы производится в форме.

Попробуйте переместить его в элемент body или, лучше, используйте javascript, чтобы добавить обработчик события в событие окна:

function handleKeypress(e){

       var keycode = e.keyCode || e.charCode;

       if (keycode == 113) {
            var txtbx = document.getElementById("txtbx_login")
            txtbx.style.display = "";
            var lbl = document.getElementById("lbl_login")
            lbl.style.display = "none";
        }

    }
    window.onkeypress = handleKeypress;

В Firefox вам также нужно использовать event.charCode. Я не проверял вышеупомянутое во всех браузерах, но это начало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...