入力フィールドの有効性をチェックする関数を作成しようとしていますが、入力が速すぎてタブを押すと、イベントが発生せず、フィールドが検証されないという問題が発生しています。 。キーアップ、キーダウン、ぼかし、フォーカス、フォーカスアウトのいくつかの組み合わせを試しましたが、何も機能しませんでした。
以前にぼかしを使用しましたが、ぼかしの問題は、メールアドレスの最後の入力で、メールから離れてボックスをぼかしてはいけないため、起動しないことです。
これは私が現在使用しているコードです。待つと動作しますが、「ジョン」と入力してすぐにタブを押すと、検証されません。
$(function()
{
var timer;
// First name
$('input[name="firstName"]').on('keydown',function(event)
{
clearTimeout(timer);
timer = setTimeout(function()
{
validate(/^[A-Za-z]*$/, 'firstName', 'firstName')
}, 800);
});
// Last name
$('input[name="lastName"]').on('keydown',function(event){
clearTimeout(timer);
timer = setTimeout(function()
{
validate(/^[A-Za-z]*$/, 'lastName', 'lastName')]
}, 800);
});
// Email
$('input[name="email"]').on('keydown',function(event){
clearTimeout(timer);
timer = setTimeout(function()
{
validate(/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/, 'email', 'email')
}, 800);
});
}
私が何をすべきかについてのアイデアはありますか?