jQuery验证插件-焦点事件与键/鼠标事件不一致
jQuery validation plugin - focus event inconsistent on key/mouse events
我正在使用查询验证插件(http://docs.jquery.com/Plugins/Validation)我的目标是在提交表单之前显示错误消息。为此,我使用.valid()
方法。
在出现错误之前,我不想显示这些消息,所以我会先隐藏它们。当字段第一次聚焦时,我不想显示错误消息。当用鼠标聚焦输入时,这非常有效,但是当使用tab键聚焦字段时,无论如何都会显示错误消息。
我在这里创建了一个小提琴来演示焦点问题:http://jsfiddle.net/tucsonlabs/WQnHN/4/
这应该可以工作:http://jsfiddle.net/yQRvZ/
var code;
$('input').keyup(function(e) {
code = (e.keyCode ? e.keyCode : e.which);
if(code == 9) {
return false;
}
});
每当您释放一个密钥(这是.keyup()
)并且input
字段集中时,jQuery代码就会检查已释放密钥的密钥代码。对于Tab
,键代码是9
,因此每次释放Tab时,return false;
都会阻止默认事件并阻止事件冒泡。
这样效果更好:
$(document).ready(function() {
$('#myForm').validate();
//$('#myForm').valid();
$('#myForm').hideErrors();
$('input').blur(function() {
if( !$(this).valid() ) $(this).next('label.error').show();
});
});
我需要使用@mindandmedia和@Fabian的代码组合。
以下是对我有效的方法:
var code;
$('input').keyup(function(e) {
code = (e.keyCode ? e.keyCode : e.which);
if(code == 9) {
return false;
}
});
$('#myForm').validate();
$('input').blur(function() {
if( !$(this).valid() ) {
$(this).next('label.error').show();
}
});
相关文章:
- JsFiddle上的鼠标事件不起作用
- 鼠标悬停事件影响列表中所有行中的按钮,而不仅仅是特定按钮
- node-webkit-从父窗口捕获iframe鼠标事件
- 如何在jquery中找到鼠标滚轮/触摸移动事件的走向
- 如何查明鼠标按下事件是否发生在滚动条上或元素中的其他任何位置
- 鼠标事件在OpenLaszlo应用程序中不起作用
- 为画布绘图添加鼠标事件
- 如何在元素中处理鼠标事件,但不能在其子元素上处理
- KineticJS鼠标事件问题
- 捕获鼠标关闭事件并在 Mozilla 中获取 clientX 和 clientY
- D3.js:如何在svg上移动鼠标时创建弹出事件
- 如果鼠标在元素上快速移动和关闭,则防止.hoop事件被垃圾邮件发送
- 如何在asp:linkButton上显示鼠标悬停事件上的图像
- GWT-允许鼠标事件在两个叠加画布之间传播
- 为什么不是't html<对象>元素响应鼠标事件
- 如何恢复Kinetic.js鼠标事件
- 鼠标事件's在CtrlKey不起作用的情况下单击
- 必须更改单击事件鼠标输入鼠标输出事件
- 当一个标记位于打开的infobox -事件鼠标悬停与infobox插件谷歌地图API v3
- 带有按钮的鼠标事件:鼠标悬停、onclick、静态