使用jquery同时聚焦和(聚焦)

时间:2013-01-20 19:11:11

标签: jquery

我想保护我的输入免受残酷的黑客攻击 所以我为我的输入做了一些验证..我希望他们在焦点事件上工作 聚焦事件呢!有什么优雅的方法可以做到这一点,除此之外:

$(this).focus(function(){
// excute my code
});

然后

$(this).focusout(function(){
// excute the same code !
});

我想为太多的输入做这个..而且我不想为(焦点和焦点)做两次相同的工作以避免页面的额外负荷!

3 个答案:

答案 0 :(得分:0)

虽然我不同意这个问题的前提(你不能通过客户端代码阻止暴力攻击),但你可以通过将两个事件作为空格分隔的字符串传递给on来简化代码:< / p>

$(this).on('focus focusout', function() {
    // excute my code
});

这是小提琴:http://jsfiddle.net/bL79F/


如果您使用的是旧版jQuery,请改用bind

$(this).bind('focus focusout', function() {
    // excute my code
});

这是小提琴:http://jsfiddle.net/bL79F/1/

答案 1 :(得分:0)

只需创建一次功能,并在任何需要的地方使用

function validate(){
   // validation code
}

$(this).on('focus focusout', validate );

但任何客户端验证都必须覆盖...
您将需要进行服务器端验证。


对于早期版本的jQuery使用

$(this).bind('focus focusout', validate );

答案 2 :(得分:0)

正如大家所说,无论如何都需要服务器端验证。我不确定jQuery是否会将focusinfocusout转换为focusblur,但我认为它确实如此。

较新版本:

$(this).on('focusin focusout focus blur', function () {

旧版本只需将.on替换为.bind,它应该可以使用相同的