2012-05-10 5 views
0

電子メール検証のために自分のコントローラーにリモート検証を設定しましたので、すぐに電子メールを確認できます。私はこれをもう少しとって、ユーザーがまだ入力しているときに電子メールを検証することを望んでいます。現在、ユーザーが最初にテキストボックスからフォーカスを離したときに検証が行われますが、テキストボックスに戻った場合はキーアップで検証されます。別のトリガーでリモート検証を設定する方法はありますか?たぶんキーアップだけど、ある程度の時間が経過した後?MVC 4を使用してユーザー検証のためのタイマーを設定する最も良い方法は何ですか

+0

可能な重複します。http:/ /stackoverflow.com/questions/5407652/asp-net-remote-validation-only-on-blur – VahidN

答えて

1

検証コードを実行する前に、JavascriptでsetTimeoutという基本コードを使用できます。

のjQueryを使用した簡単な例:あなたはタイムアウトをクリアする必要がある場合は、キーが押されたとき

$('#myElement').keyup(function(){ 
    setTimeout(ValidationFunction,1000); 
}); 

はあなたが行うことができた:

var myTimeoutFunction; 

$('#myElement').keyup(function(){ 
     myTimeoutFunction = setTimeout(ValidationFunction,1000); 
    }); 

$('#myElement').keydown(function(){ 
    window.clearTimeout(myTimeoutFunction); 
}); 

Here's a working example

+0

私はJavascriptであまり経験がありません。メールテキストボックスからタイムアウトメソッドを呼び出すにはどうすればよいですか? – Pittfall

+0

この部分 '$( '#myElement')'は、myElementという名前のテキストボックスを参照します(必要に応じて名前を付けます)。このコードは、そのテキストボックスに 'keyup'イベントを登録し、ユーザがキーを押して離したときに起動し、タイムアウトを1秒に再設定します。 –

+0

1秒後に 'myTimeoutFunction'関数が呼び出され、電子メールアドレスの検証に必要なロジック(いくつかのajaxコードやsomethning)を入力します。 –