我按下键盘上的 ENTER 键,页面刷新。如何防止这种情况发生并仍然使用键盘进行搜索?

Chi*_*keh 4 html javascript jquery

我们过去可以在搜索框中输入搜索字段、地址,然后按键盘上的 ENTER 键并获取搜索结果。

我做了一些更改,但无法查明导致 ENTER 键行为异常的更改。它不会提交,而是刷新页面。

我已尝试以下各项来停止页面刷新:

<form onSubmit="return false;">

<form onkeypress="return event.keyCode != 13">
Run Code Online (Sandbox Code Playgroud)

每个都有效。

但是,我无法再按 ENTER 键并显示结果。

我需要做什么来解决这个问题?

下面是js:

function getData()
{

     dijit.byId("advanceSearchDialog").hide(); 
    var form = document.getElementById("searchForm");
    var form2 = document.getElementById("featuresForm")
    var searchText = form.searchBox.value.replace(/-/g,"");
    form.searchBox.value = searchText;

    if (searchText != "") 
    {
        // collect features to search for:
        var features = [ ];
        var featTypes = form2.featType;
        for ( var f = 0; f < featTypes.length; ++f )
        {
            if ( featTypes[f].checked ) features.push( featTypes[f].value );
        }
        featureList = "'" + features.join("','") + "'";

        searchMsg("Searching for '" + searchText + "' ...");
        featureID = "";
        var accord = dijit.byId("accordianContainer");
        var resultsPane = dijit.byId("resultsPane");
        accord.selectChild(resultsPane,true);
        doGlobalSearch( searchText, featureList );
    }
    else
    {
      searchMsg("No search criteria entered, enter search text");
    }   
}


function searchKey(e){
    // special case for IE to capture <enter> in the search box
    var key = window.event ? e.keyCode : e.which;
    var keychar = String.fromCharCode(key);
    if (key == 13)
      getData();
}



<form id="searchForm" class="search_field" method="get" action="">
   <input name="searchBox" id="searchBox" value="" />
  <button type="button" onclick="getData()"><img src="images/magnifying_glass.png" alt="Search" /></button>
</form>
Run Code Online (Sandbox Code Playgroud)

谢谢

小智 5

使用以下简单的 jQuery

if(event.keyCode == 13){ 
   event.preventDefault();
}
Run Code Online (Sandbox Code Playgroud)

...将其绑定到您的表单上