Chrome 上的 jQuery 热键 "Tab"仍会插入\t 字符,即使在返回 false 后也是如此

标签 jquery google-chrome

假设我有 2 个如下代码,其中 1 个使用 alert() 1 个不使用。我发现在 chrome 中,使用 alert() 会在文本区域中插入一个制表符 \t

$(function() {
  $("textarea").bind("keydown", "tab", function() {
    alert("something");
    return false;
  }); 
  $("textarea").bind("keydown", "shift+tab", function() {
    this.value = "don't alert()";
    return false;
  }); 
});

http://jsfiddle.net/Tu6vF/4/

为什么会发生这种情况?以及如何防止这种行为(返回 false 后添加制表符)

最佳答案

您可以尝试在“return false”之前使用此代码

if(jQuery.browser.msie) {
    event.cancelBubble = true;
} else {
    event.stopPropagation();
}   

您需要在每个绑定(bind)中添加参数事件:

function(event) { ... }

关于Chrome 上的 jQuery 热键 "Tab"仍会插入\t 字符,即使在返回 false 后也是如此,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4320707/

相关文章:

google-chrome - Chrome : CSS Style is applied only when you go to Google Developer tools

javascript - 如何获取由 chrome.windows.create() 创建的弹出窗口的窗口 ID

google-chrome - 如何在 Chrome 中为不安全的来源启用 crypto.subtle?

javascript - 谷歌浏览器中 Font Awesome 闪烁

jquery - blueimp 画廊加载动态内容

javascript - 用 ng Repeat 填充 tx3 标签云

jquery - HTML textarea 不可点击(并且不能在里面输入)

javascript - 如何保存从服务器下载的视频?

javascript - Websocket 不工作

javascript - 使用 twitter bootstrap 切换按钮和面板