如何通过javascript中的表单重新加载页面来停止输入密钥

时间:2012-09-13 15:45:18

标签: javascript forms enter

我有一个搜索栏,其中包含一个搜索其他网站上的内容的按钮。我让它正常运行(它在新标签中搜索其他网站),但无论何时我点击搜索栏中的输入,我正在重新加载的页面。首先它按下输入并单击搜索重新加载,然后我将输入类型更改为按钮而不是提交。单击按钮时会重新加载,但按下回车键后页面会重新加载。此外,它仅在单击搜索栏时重新加载,而不是仅在任何时候。必须为enter键选择搜索栏才能重新加载页面。

html:

<div id="search-3" class="widget widget_search">
    <h3 align="center">Search the other site!</h3>
    <form method="post" name="searchform" id="searchform">

      <span class="searching">
        <input type="text" value="" name="s" id="s" />
      </span>
      <input class="submit" type="button" Onclick="SearchBlog();" value="Search" />

    </form>
</div>

的javascript:

function SearchBlog()
{
    var searchQuery = document.searchform.s.value;
    if(searchQuery != ""){
        var destination = "website.com/s" + searchQuery;
        window.open(destination, "_blank");
    }
}

我希望能够使用回车键进行搜索,但我不希望它重新加载页面。

2 个答案:

答案 0 :(得分:2)

那是因为你提交的页面不在那里。

onsubmit声明中使用<form>代替:

<form method="POST" name="searchform" id="searchform" onsubmit="SearchBlog();">
   ...
</form>

然后确保在SearchBlog()函数中return false;。你应该好好去。

答案 1 :(得分:0)

试试这个:

<input class="submit" type="button" Onclick="return SearchBlog();" value="Search" />

function SearchBlog()
{
    var searchQuery = document.searchform.s.value;
    if(searchQuery != ""){
        var destination = "website.com/s" + searchQuery;
        window.open(destination, "_blank");
    }
    return false;
}
相关问题