搜索表单:按Enter键使其重新加载页面,并在页面加载时突出显示

时间:2012-08-20 15:27:47

标签: javascript forms search

以下是表单的代码:

<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>

由于我实际上正在使用wordpress的“实时搜索”插件(搜索而不导航到另一个页面),并且它有一个错误,删除和重新输入相同的文本不再搜索,我想知道我是怎么回事如果用户只是按下搜索框中的输入,会让页面重新加载吗?

我的第二个问题是如何在加载页面时默认突出显示或选择搜索栏,就像Google一样?我试过这个:

<body onload"

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

">

但它似乎没有做任何事情。任何这些问题的任何帮助将非常感谢!

1 个答案:

答案 0 :(得分:0)

您没有在onload函数中转义双引号。您可以通过使用反斜杠转义引号来解决此问题,但更好的解决方法是将此代码放在<script>标记中(而不是内联):

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

使用$()这样的功能时,它会充当$(document).ready()的快捷方式,因此无需将其附加到正文的onload事件中。

只是澄清一下,修复它的另一种方法是使用转义单引号,如下所示:

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

但我高度建议您将其放在<script>标记中。最好不要使用内联JavaScript,而使用jQuery则不需要。