1

HTML フォームを作成していて、ページ上のリンクがクリックされたときに最初の入力フィールドに注目したいと考えています。さらに、ページをその場所までスクロールしたいと考えています。ボックスにフォーカスする JS 関数を作成しました。

function selectCommentBox() {
    document.getElementById("commentbox").focus();
}

ここに私のリンクのコードがあります:

<a href='#commentbox' onclick='selectCommentBox();'>Reply</a>

私のジレンマは、どちらか一方の動作しか得られないことです。このリンクをそのまま使用すると、アンカーは正しく機能し、ページはフィールドの位置までスクロールされますが、フィールドは強調表示されません。「return false;」を追加すると、onclick に対して、フィールドは強調表示されますが、アンカー ジャンプは実行されません。両方の動作を適用するにはどうすればよいですか? ありがとう

4

1 に答える 1

6

アンカー リンクをたどると、実際にはそのアンカー (#commentbox) にフォーカスが移るので、スクロール/リンクとフォーカスの両方を行う関数を記述する必要があります。

function selectCommentBox() {
    window.location = '#commentbox';
    document.getElementById("commentbox").focus();
}

return false;古いブラウザーとの互換性のために、ステートメントを追加し、href属性をそのままにしておきます。

于 2012-10-23T01:12:04.440 に答える