您好,匿名用户
随意问技术百科期待您的加入

使用javascript的onblur和onkeyup事件对输入作check的问题

0 投票

请大家先耐心听我讲完这个问题,比较纠结:现在有一个这样的功能实现,页面有一组输入框,每完成一个输入后,光标会自动定位到下一输入框,这个功能我是用onkeyup事件来实现,就是判断输入长度是否满足,如果满足光标就向下一个跳转。但是在这个跳转前要先对这个输入框的内容作check,如果非法输入,将会弹出alert警告并保留原来光标位置。以上功能我都能用一个onkeyup事件来实现。除此之外还有一个功能实现,就是如果输入框输入非法触发完onkeyup事件光标保留当前输入框后,若此时用鼠标点击其他地方时还要弹出警告alert提示输入不正确,这个功能我是用onblur实现的,以上这两个功能我都能单独实现,可是放在一起这光标就不好控制了,求js达人帮忙啊。其实最后就是为了实现"当前输入框输入不正确,光标无论如何都不会跳转并alert警告(包括鼠标点击其他地方),如果输入正确光标自动跳转到下一输入框!"这功能,万分感谢!

用户头像 提问 2012年 12月1日 @ 随意问站长 上等兵 (310 威望)
分享到:

1个回答

0 投票

你可以用如下的思路

  1. setInterval来代替onkeyup做异步检查
  2. onblur以后如果检查不合格,强行focus原来的input

这是伪代码

function check() {
    // 执行检查代码
}

setInterval(function () {
    if (check()) {
        // go to next input
    }
}, 100);

input.onblur = function () {
    if (!check()) {
        input.focus();
        alert('error');
    }
};
用户头像 回复 2012年 12月1日 @ Syndra 上等兵 (331 威望)
提一个问题:

相关问题

0 投票
1 回复 1 阅读
用户头像 提问 2014年 6月7日 @ Nunu 上等兵 (350 威望)
0 投票
1 回复 33 阅读
用户头像 提问 2012年 12月1日 @ Caitlyn 上等兵 (452 威望)
0 投票
1 回复 52 阅读
用户头像 提问 2012年 12月1日 @ Fizz 上等兵 (325 威望)
+2 投票
1 回复 46 阅读
用户头像 提问 2013年 1月24日 @ Libra 上等兵 (351 威望)
0 投票
1 回复 48 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...