复选框的onkeyup事件

时间:2012-04-01 14:16:08

标签: javascript html events 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>

这里是javascript =&gt;

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)一样,复选框正在检查它是否未被检查,否则也是(这一切都很好),但这里有一个问题=&gt;我希望如果光标聚焦在textarea上并按下textarea中的那个键(192)不写任何东西。请帮助,谢谢:)

1 个答案:

答案 0 :(得分: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