当在Chrome的文本区域内单击选项卡键时,preventDefault()
preventDefault() when a tab key is clicked inside of a textarea in Chrome
我知道以前也有人问过类似的问题,但是我看到的行为与我在SO上找到的有点不同。
我有一个表单,我分解成几个jquery手风琴选项卡。我希望用户能够填写标签1下的文本字段,然后按下标签键自动打开标签2,并把焦点放在该标签的文本字段。我遇到的问题是在Chrome中阻止默认的标签键行为。
$("form#new_story").keydown(function (e) {
if(!e) var e = window.event;
var keyCode = e.keyCode || e.which;
if (keyCode == 9) {
e.preventDefault();
alert("tab was keyed");
}
});
我已经在Chrome, FF和Safari中测试过了。在FF和Safari中工作得很好,但是当使用Chrome的用户按下标签键时,在事件触发之前,一个实际的标签被输入到文本字段中。我想停止这种行为,但标签显然是被输入事件甚至触发之前。有办法阻止这一切吗?
原来这个问题是由jquery validate触发的。我正在用这组选项验证表单中的每个文本字段:
$("form#new_story").validate({
ignore: [],
onkeyup: false, //stop eager validation of fields so to not hit server each time user clicks a key in the email field
onfocusout: true,
...
};
一旦我设置了onfocusout: false
,我就能够像预期的那样捕获tab键下事件。
我不知道为什么会这样。一定是jquery手风琴或jquery验证中的错误。
相关文章:
- 我怎样才能制作一个“;reverse preventDefault”;在jQuery中
- IE7 preventDefault()无法处理跳过链接
- e.preventDefault在表单提交时被忽略
- preventDefault而不删除html5验证
- event.preventDefault阻止ajax调用
- jQuery preventdefault提交表单没有'通过js函数提交表单时无法工作
- 事件发生后重定向到主页.preventDefault.
- 是preventDefault()一个jQuery函数或javascript函数
- preventDefault之后的重新启动事件
- preventDefault()赢得'It’我不管用
- 为什么使用e.preventDefault的if语句?-拖放javascript
- event.preventDefault() 不会在 jQuery Mobile 中取消链接方向
- preventDefault() 类似于 javascript 中的功能
- e.preventDefault() in ie8
- 如果父元素具有 preventDefault,如何将单击传播到子元素
- Javascript - jQuery preventDefault method
- Javascript-匿名函数中使用参数引用全局函数的闭包-我如何使用preventDefault
- 如何查找导致preventDefault的原因,该preventDefault会覆盖正常的单击行为
- 如果存在event.preventDefault函数,则ajaxForm不起作用
- Javascript preventDefault operation