Событие onkeyup для флажка

У меня здесь простая ситуация. давайте посмотрим правде в глаза HTML-код первый =>

<form name="geoKey" method="post" action="index.php">
<fieldset class="gKey">
        <legend><input type="checkbox" name="checkUncheck" id="checkUncheck"></legend>
        <textarea name="txt" id="txt" cols="34" rows="5"></textarea>
</fieldset>
</form>

а вот и яваскрипт =>

function keyPress(e){
    var key;
    var box = document.getElementById("checkUncheck");
    if (window.event){
        key = event.keyCode;
    } else {
        key = e.which;
    }
    if (key==192){
        (box.checked) ? box.checked=false : box.checked=true;
    }
}

window.onload = function(){
    document.onkeyup = keyPress;
};

Итак, как вы видите, ребята, когда она нажата клавиша (номер 192) флажок проверяет, если он не проверен, и в противном случае тоже (это все работает хорошо), но здесь есть проблема => Я хочу, чтобы, если курсор сфокусирован на textarea и нажал эту клавишу (192) в textarea ничего не пишет. пожалуйста помогите, спасибо:)

1 ответ

Решение

Использование onkeydown вместо этого и предотвратить действие браузера по умолчанию с помощью e.preventDefault:

function keyPress(e){
    var key;
    var box = document.getElementById("checkUncheck");
    if (window.event){
        key = event.keyCode;
    } else {
        key = e.which;
    }
    if (key==192){
        e.preventDefault(); // <-- prevent default action
        (box.checked) ? box.checked=false : box.checked=true;
        return false;
    }
}

window.onload = function(){
    document.onkeydown = keyPress;
};

JSFiddle demo.

Другие вопросы по тегам