9

これは私の最初の投稿です -みなさんこんにちは

私は現在、css と jquery をサポートする html フォームを開発しています。このフォームは「経験の浅いユーザー」が使用するため、使いやすさに重点を置いています。そのため、すべての入力フィールドにヒントを提供し、さらに指示を出しています。ヒントを表示するために、onfocus/onblur JavaScript イベントを使用しているため、一度に 1 つのヒントしか表示されません。の入力フィールドしかないときはうまくいきましたtype="text"が、入力フィールドが の場合type="radio"、Google Chrome で問題が発生しています。

jsfiddle.net簡単な例を作成したので、私の意味がわかります。そこにあるコードは、フォームで使用しているコードと非常によく似ているため、わざわざここに投稿することはしませんでした。これまでにテストしたすべてのブラウザーでアラートがポップアップしますが、Google Chrome は除きます。なぜだろう?既知の解決策または回避策はありますか?

4

3 に答える 3

5

作業サンプル

$('input').on({
    click: function (e) {
        this.focus();
        $('#' + this.id + 'msg').show();
    },
    blur: function (e) {
        $('#' + this.id + 'msg').hide();
    }
});
于 2011-04-21T13:58:24.593 に答える
4

クァークズモードから:

ユーザーがマウスを使用してチェックボックス、ラジオ、またはボタンにアクセスした場合、SafariとChromeはフォーカス/ブラーイベントを発生させません。テキストフィールド、textareas、および選択ボックスは正しく機能します。

ここでこれを回避するためのいくつかの提案があります。

于 2011-04-21T13:44:00.413 に答える
2

blurChromeの特定のバージョン(私の10.0.648.205ではありません)で動作しますが、要素のコレクション全体から離れた場合にのみ動作します。これが役立つかどうかはわかりませんが、これは機能します。

$('input:radio').click(function() {
    alert('why does this not show up in google chrome?!');
});

HTH。

于 2011-04-21T13:38:38.897 に答える