ホームページ  >  記事  >  ウェブフロントエンド  >  jquery Blur後にフォーカスが取得できない問題の解決策

jquery Blur後にフォーカスが取得できない問題の解決策

黄舟
黄舟オリジナル
2017-06-27 11:42:501471ブラウズ

1: 多くの子供の靴はこの状況に遭遇する可能性があります:

jquery のぼかしの後、フォーカスを取得できません。

2: 使用シナリオ:

ユーザーが情報を入力するとき、電子メールが空の場合は、電子メールを入力してくださいというプロンプトが表示され、ユーザーが簡単に電子メールを入力できるようにテキスト ボックスにカーソルを置きます。もう一度入力してください。

もちろん、上記の要件を達成するために、jquey の Blur() と focus() という 2 つの 関数 を使用します:

$("#email").blur(function(){       if($("#email").val()==''){
            alert('请填写您的邮箱');
            $("#email").focus();    
       }    
})

3: コードの説明:

メールに入力するテキスト ボックスがフォーカスを失ったとき、埋め込まれた場合電子メールが空の場合、「電子メールを入力してください」というプロンプトがポップアップ表示され、テキスト ボックスにフォーカスが戻り、ユーザーが再入力しやすくなります。

FF で test.html を実行すると、ポップアップ ボックスが表示されますが、フォーカスを取得できないことがわかります。IE で実行した結果は、明らかにエラーではありません。通常の場合、ポップアップ メッセージが表示され、フォーカスも取得されます。

4: そうすると、これは別の互換性の問題だと思うでしょう。

はい。 FF と IE は互換性の点で確かに多くの問題を引き起こしました。

5: 問題の原因は、FF と IE のぼかしとフォーカスのメカニズムが異なることである可能性があります。

FFフォーカスはブラーの前にのみ可能です。

シックス: では、このバグを解決するにはどうすればよいでしょうか?

遅延するには settimeout を使用します。

変更されたコードは次のとおりです:

$("#email").blur(function(){    if($("#email").val()==''){
        alert('请填写您的邮箱');        //$("#email").focus();
        window.setTimeout (function(){ document.getElementById ('email'). select();},0 );     
    }    
})

Seven: それぞれ IE と FF で実行され、完全な互換性があります。

以上がjquery Blur後にフォーカスが取得できない問題の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。