Focus()似乎在onblur()之后不起作用
focus() does not seem to work after onblur()
我有一个输入字段列表,当我通过它们tab时,我想循环回到第一个,但它似乎不起作用。
这是我的HTML
<form id="form">
<input id="mon" type="text"/> Month<br>
<input id="day" type="text"/> Day<br>
<input id="num" type="text"/> Year<br>
<input id="amt" type="text"/> Amount<br>
</form>
和javascript
window.onload=function(){
$('mon').focus();
$('amt').onblur=function(){
//Process the input fields
$('mon').focus();
}
}
function $(a){return document.getElementById(a)}
我认为您的onblur
事件处理程序在默认处理程序之前被调用,导致焦点首先转移到输入'mon',然后转移到浏览器认为接下来应该关注的任何内容。尝试使用onkeypress
事件。例如
window.onload=function(){
$('mon').focus();
$('amt').onkeydown = function(e) {
//check for IE weirdness
if (e === undefined && event !== undefined)
e = event;
if (e.keyCode == 9) {
$('mon').focus();
return false;
}
}
}
function $(a){return document.getElementById(a)}
编辑:onkeydown
实际上似乎在更多的浏览器工作
编辑2:增加IE大小写。IE并不总是将事件作为参数传递
要使光标出现在第一个输入框上,您需要将输入框的值赋给它自己(hack)。您还需要"返回false"来停止事件传播。修改后的模糊函数如下,
<input id="mon" type="text" onfocus="this.value=this.value;" />
$('amt').onblur = function(){ $('mon').focus(); return false; }
看看这个小提琴。我认为这是你想要达到的目标。http://jsfiddle.net/CucuIonel/7Fpu3/7/
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- JQuery hide()在show()之后不起作用,反之亦然
- ng模型在$(element).clone()之后不起作用
- CKEditor - 插入文本在 setData 之后不起作用
- UI - 手风琴在 empty() 和 append() 之后不起作用
- Ckeditor插件功能在使用setData(“hai”)之后不起作用;
- Jquery事件在主干呈现中/之后不起作用
- 某些函数在 .append 之后不起作用
- jquery ajax 在 str.rereplace 之后不起作用
- CSS :悬停在 jquery load();之后不起作用
- jQuery .click() 在 replaceWith() 之后不起作用
- JavaScript 在 document.write 之后不起作用
- CSS 在 .after() 之后不起作用
- AngularJS$apply在输入类型范围的ngChange之后不起作用
- ExpressJs的res.sendFile在中间件之后不起作用
- JQuery hide()在fadeIn()之后不起作用
- JavaScript For循环在代码的某一行之后不起作用
- Focus()似乎在onblur()之后不起作用
- ASP.NET ajax函数在onchange事件之后不起作用
- 在此Javascript代码中,setInterval()在clearInterval()之后不起作用