0

我想保护我的输入免受暴力破解
,所以我对我的输入进行了一些验证..我希望他们也能处理焦点事件和
焦点事件!有什么优雅的方法可以做到这一点,除了这个:

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

接着

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

我想对太多输入执行此操作..我不想为(焦点和焦点输出)做两次相同的工作以避免页面的额外负载!

4

3 回答 3

1

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

$(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/

于 2013-01-20T19:13:12.983 回答
0

只需创建一次函数,然后在需要的地方使用它

function validate(){
   // validation code
}

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

但是任何客户端验证都必然会被覆盖......
您将需要进行服务器端验证..


对于早期版本的 jQuery 使用

$(this).bind('focus focusout', validate );
于 2013-01-20T19:13:35.130 回答
0

正如大家所说,无论如何,您都需要服务器端验证。我不确定 jQuery 是否将focusinand转换focusoutfocusand blur,但我想它会。

较新的版本:

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

旧版本只是替换.on.bind,它应该工作相同

于 2013-01-20T19:17:25.757 回答