chu*_*k w 6 javascript jquery google-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");
}
});
Run Code Online (Sandbox Code Playgroud)
我在Chrome,FF和Safari中测试了这个.在FF和Safari中运行良好,但是当使用Chrome键的用户按下Tab键时,在事件触发之前会在文本字段中输入实际的选项卡.我想停止这种行为,但是在事件触发之前显然正在输入标签.有办法阻止这个吗?
原来问题是由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,
...
};
Run Code Online (Sandbox Code Playgroud)
一旦我设置,onfocusout: false我就能够按预期捕获 tab keydown 事件。
我不知道为什么会这样。一定是 jquery Accordion 或 jquery validate 中的错误。
| 归档时间: |
|
| 查看次数: |
2090 次 |
| 最近记录: |