0

我是 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即使它有一个字符,其他标签也不会接受退格事件。

4

2 回答 2

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

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

于 2013-07-21T05:59:09.670 回答
0

您可以将事件处理程序添加到文档按键然后检查是否退格和您想要“LI”的元素类型

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

            var key = e.which;

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

        });

你可以用你想要的元素类型替换文本

于 2013-07-21T07:13:26.373 回答