0

そのままのフォームのコードは次のとおりです。

<form onsubmit="return false;" role="search"  method="get" id="searchform" action="window.location.reload()" autocomplete="off">
    <div><label class="screen-reader-text" for="s">Search for:</label>
    <input type="text" value="" name="s" id="s" class="searchbar" >
    </div>
    </form>

私は実際にワードプレスの「ライブ検索」プラグイン(別のページに移動せずに検索する)を使用しており、同じテキストを削除して再入力しても再度検索されないというバグがあるため、どうすればユーザーが検索ボックスで Enter キーを押した場合にページをリロードしますか?

2 番目の質問は、Google のように、ページが読み込まれたときにデフォルトで検索バーを強調表示または選択する方法です。私はこれを試しました:

<body onload"

$(function() {
    $("input[name='s']").focus();
});​

">

しかし、それは何もしないようです。これらの問題のいずれかに関するヘルプは本当に感謝しています!

4

1 に答える 1

0

関数内の二重引用符をエスケープしていませんonload。バックスラッシュで引用符をエスケープすることで修正できますが、これを修正するより良い方法は、このコードを<script>(インラインではなく) タグに入れることです。

<script>
    $(function() {
        $("input[name='s']").focus();
    });​
</script>

$()このような関数を使用すると、 のショートカットとして機能するため、本体のイベント$(document).ready()に付ける必要はありません。onload

明確にするために、それを修正する別の方法は、次のようにエスケープされた単一引用符を使用することです。

<body onload"
    $(function() {
        $('input[name=\'s\']').focus();
    });​">

ただし、これをタグに入れることを強くお勧めします。<script>インライン JavaScript は使用しない方がよいでしょう。jQuery ではその必要はありません。

于 2012-08-20T15:34:09.010 に答える