如何在jquery或javascript中停止特定元素的退格?

时间:2013-07-21 05:36:13

标签: javascript jquery

我是javascript的新手,我正在制作一个Web应用程序。基本上它是一个使用html5的简单备忘录。

我的HTML代码:

<ul contenteditable="true">
   <br/>abc<br/>
   def<br/>
   ghi<br/>
</ul>

和我的javascript:

window.onkeydown = backspace;

function backspace() {  
    var key = event.keyCode || event.charCode;
    var lis = document.getElementsByTagName("li");
    for (var i = 0; i < lis.length; i++) {
        var li = lis[i];

        if (li.innerHTML == "<br>") {
            if (!li.id) {
                li.id = "ttt";
                if (key == 8) {
                    return false;
                }
            }
        }   
    }    
    return true;
}

我尝试了基本的退格返回false但问题是如果li标记为空,则其他li标记即使有字符也不会接受退格事件。

2 个答案:

答案 0 :(得分:0)

$('input').keydown(function(e){
    if(e.keyCode == 8) {
        e.preventDefault();
        alert('we arent allowing deletes');
    }
});

http://jsfiddle.net/dq8tr/3/

答案 1 :(得分:0)

您可以为文档按键添加事件处理程序 然后检查退格键和你想要的元素类型'LI'

$(document).keypress(function(e) {

            var key = e.which;

            if (key == 8 && e.target.attributes[0].value != "text") {
                return false;
            }

        });

您可以使用所需元素的类型替换文本