使用onblur事件为event.keycode调用函数

时间:2014-05-26 21:50:48

标签: javascript html

如何将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()" />

2 个答案:

答案 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。