0

入力をブルートフォースハックから保護したい
ので、入力に対していくつかの検証を行いました..そしてフォーカスイベントとフォーカス
アウトイベントでも機能させたいです!これ以外に、それを行うためのエレガントな方法はありますか?

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

その後

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

入力が多すぎる場合にこれを実行したい..ページの余分な負荷を回避するために、(フォーカスとフォーカスアウト)に対して同じ作業を2回実行したくない!

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

誰もが言っているように、サーバー側の検証が必要です。focusinjQueryがandtoandに変換されるかどうかはわかりませんが、変換focusoutされるfocusblur思います。

新しいバージョン:

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

古いバージョンはに置き換えるだけ.on.bind、同じように機能するはずです

于 2013-01-20T19:17:25.757 に答える