-3

このサンプルを見てください: http://jsbin.com/imivek/1/edit

ラベルの一部であるテキスト フィールドをクリックすると、Firefox で奇妙な動作が発生します (v17.0.1 でテスト済み)。

  • 1 回クリックすると、非常に短い時間だけフォーカスが置かれ、その後、フォーカスがラジオ ボタンに移動します。
  • 2 回続けてクリックすると、フォーカスが維持されます。
  • 他の手段 (fe タブ) でフォーカスすると、正常に動作し、期待どおりに動作します。
  • テキスト フィールドのクリック イベントを処理し、( e.stopPropagation()jQuery 用語で) バブルアップしないようにしても、何も変わりません。

この動作を説明し、最適な回避方法を推奨できるのは誰ですか?

4

3 に答える 3

2

ラベル内にフォーム コントロールを 1 つだけ含めることができます。あなたは2つ持っています。HTML が無効であるため、ブラウザーが間違いを補正しようとするため、奇妙な動作が予想されます。

1 回クリックすると、非常に短い時間だけフォーカスが置かれ、その後、フォーカスがラジオ ボタンに移動します。

ラベルをクリックしました。これにより、フォーカスがラジオ ボタンに設定されます (ラベルがラベルのように見えるため)。

2 回続けてクリックすると、フォーカスが維持されます。

おそらくある種のエラー回復

他の手段 (fe タブ) でフォーカスすると、正常に動作し、期待どおりに動作します。

その場合、ラベルをクリックしていません

テキスト フィールドのクリック イベントを処理し、バブルアップを防止しても (jQuery 用語では e.stopPropagation())、何も変わりません。

これはネイティブ機能であり、スクリプト化された機能ではありません。

有効な HTML を記述します。

于 2013-01-06T18:10:05.643 に答える
0

これは FF のバグです https://bugzilla.mozilla.org/show_bug.cgi?id=213519 2003 年に報告されましたが、まだ修正されていません。

于 2013-03-26T14:44:44.150 に答える
0

なぜ 2 つ<input>の 's が同じにあるの<label>ですか? あなたは何をしようとしているのですか?ラベルは1 つの入力要素にバインドされ、そのキャプションとして機能することになっているため、クリックすると入力がフォーカスされます。

于 2013-01-06T18:10:17.610 に答える