我想保护我的输入免受残酷的黑客攻击 所以我为我的输入做了一些验证..我希望他们在焦点事件上工作 聚焦事件呢!有什么优雅的方法可以做到这一点,除此之外:
$(this).focus(function(){
// excute my code
});
然后
$(this).focusout(function(){
// excute the same code !
});
我想为太多的输入做这个..而且我不想为(焦点和焦点)做两次相同的工作以避免页面的额外负荷!
答案 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
});
答案 1 :(得分:0)
只需创建一次功能,并在任何需要的地方使用
function validate(){
// validation code
}
$(this).on('focus focusout', validate );
但任何客户端验证都必须覆盖...
您将需要进行服务器端验证。
对于早期版本的jQuery使用
$(this).bind('focus focusout', validate );
答案 2 :(得分:0)
正如大家所说,无论如何都需要服务器端验证。我不确定jQuery是否会将focusin
和focusout
转换为focus
和blur
,但我认为它确实如此。
较新版本:
$(this).on('focusin focusout focus blur', function () {
旧版本只需将.on
替换为.bind
,它应该可以使用相同的