在IE中禁用退格键并使用javascript删除密钥

时间:2009-03-20 01:07:40

标签: javascript

任何人都知道如何在IE中使用Javascript禁用退格键和删除键?这是我的下面的代码,但似乎它不适用于IE,但对Mozilla来说很好。

onkeydown="return isNumberKey(event,this)"

function isNumberKey(evt, obj)
{

    var charCode = (evt.which) ? evt.which : evt.keyCode
    if (charCode == 8 || charCode == 46) return false;

    return true;
}

4 个答案:

答案 0 :(得分:13)

此事件处理程序适用于所有主流浏览器。

function onkeyup(e) {
    var code;
    if (!e) var e = window.event; // some browsers don't pass e, so get it from the window
    if (e.keyCode) code = e.keyCode; // some browsers use e.keyCode
    else if (e.which) code = e.which;  // others use e.which

    if (code == 8 || code == 46)
        return false;
}

您可以将事件附加到此功能,如:

<input onkeyup="return onkeyup()" />

答案 1 :(得分:5)

更新根据@JoeCoder的评论和我的回答“过时”,我对其进行了修改。

document.querySelector([text input element]).onkeydown = checkKey;
function checkKey(e) {
    e = e || event;
    return !([8, 46].indexOf(e.which || e.keyCode || e.charCode) > -1);
}

另见this jsFiddle

答案 2 :(得分:2)

$(document).keydown(function(e) {
    if (e.keyCode === 8) {
        var element = e.target.nodeName.toLowerCase();
        if ((element != 'input' && element != 'textarea') || $(e.target).attr("readonly")) {
            return false;
        }
    }
}); 

答案 3 :(得分:2)

此代码取消退格操作。

window.onkeydown = function (event) {

    if (event.which == 8) { 

         event.preventDefault();   // turn off browser transition to the previous page 

                 // put here code you need 

        }; 

};