按Enter键离开ContentEditable框

时间:2013-11-09 16:06:37

标签: javascript jquery

我正在尝试在某人输入某些信息后发送信息,如果有人通过点击其他地方离开,或者标记出来,则会发送信息....但是当按Enter键时,它会断开并转到下一行。我正试图阻止这一点,当他们按下回车时就离开盒子。

代码:

$('.username').blur(function(){
    if (username != $(this).text()) {
        $.ajax({
            type: 'POST',
            url: 'usernameChange',
            data: { username: username, id: id }
        }).done(function(msg){
            console.log('Okay, new username is ' + msg);
        });
    }
});

如何检查是否有人按回车离开......

<span class="username" contenteditable="true">Nasus</span>

1 个答案:

答案 0 :(得分:3)

你必须处理keydown事件,当有人按下Enter键时失去对contentEditable的关注,这样你也可以防止换行。

$(".username").on("keydown",function(e){
    var key = e.keyCode || e.charCode;  // ie||others
    if(key == 13)  // if enter key is pressed
        $(this).blur();  // lose focus
});