如何将onblur
事件与event.keycode
一起使用?有没有办法用onblur
事件调用validate函数?我知道可以使用onkeyup/down/press
进行调用,但我需要onblur
事件功能。
你能建议解决我的问题吗?
这是我的代码段:
function validate() {
var keycode = event.keyCode;
alert(+keycode);
if ((keycode>=48 && keycode<=57) || (keycode==37)) return true;
return alert("Please refine search criteria with 0-9%");
}
HTML code:
<input type="text" nam ="name" id="name" onblur="return validate()" />
答案 0 :(得分:2)
您可以在函数后绑定和事件处理程序:
var inputname = document.getElementById('name');
inputname.onblur = function(e){
validate(e);
}
但是e.keyCode
将为空,因为您没有触发关键事件。它将始终返回0
。你应该改变你的功能的逻辑。尝试使用keyup事件。目前你的代码没有任何意义(或者我无法找到它)。
选中 jsFiddle
答案 1 :(得分:0)
最简单的方法是不使用keyCode,因为用户可以在不使用任何键的情况下模糊控件,因此相关事件不会成为键盘事件,因此不会拥有keyCode属性。相反,请查看控件的值。它似乎应以数字(0-9)结束。控件应如下所示:
<input name="input1" onblur="return validate(this)">
因为不需要名称和ID,并且提供名称为&#34; name&#34;的表单控件。将屏蔽表单自己的名称属性(如果它在表单中)。功能可以是:
function validate(control) {
return /\d$/.test(control.value);
}
如果值以数字结尾,则返回true,否则返回false。