Javascript 在'时停止页面刷新;输入';在输入文本元素中按下

Javascript 在'时停止页面刷新;输入';在输入文本元素中按下,javascript,Javascript,当在输入文本元素中按下enter按钮时,是否有方法阻止网页完全刷新 我希望创建一个搜索字段,当按下enter键过滤对象时,我可以从中获取文本,并且只显示包含搜索字段中文本的对象 我尝试了下面的方法,试图抓住回车按钮,但它不起作用 function setupSearchField() { document.getElementById("searchField").onKeyDown = function(event) { var holder; if (

当在输入文本元素中按下enter按钮时,是否有方法阻止网页完全刷新

我希望创建一个搜索字段,当按下enter键过滤对象时,我可以从中获取文本,并且只显示包含搜索字段中文本的对象

我尝试了下面的方法,试图抓住回车按钮,但它不起作用

function setupSearchField() {
    document.getElementById("searchField").onKeyDown = function(event) {
        var holder;
        if (window.event) {
            holder = window.event.keyCode;
        } else {
            holder = event.which;
        }
        keyPressed(holder);
    }
}

function keyPressed(key) {
    if (key == 13) {
        event.cancelBubble = true;
        return false;
    }
}

如果输入元素在表单中,而该表单实际上没有提交给服务器,请删除该表单


代码不起作用的原因是
onkeydown
事件应该是小写的,并且您实际上没有返回其中的内容(请尝试
returnkeypressed(holder);
-或者只需将按下的
函数的代码移动到
设置搜索字段
,因为将其作为一个单独的函数对我来说似乎没有意义)。

您的搜索字段是否在元素中?然后点击“enter”向表单元素触发提交事件

<form id="searchForm">
    <input type="text" name="search" />
</form>
<script>
    document.getElementById('searchForm').onsubmit = function() {
        var searchValue = this.search.value;
        // process
        return false;
    }
</script>
在这种情况下,您可以通过在表单元素上定义onsubmit来处理过滤

<form id="searchForm">
    <input type="text" name="search" />
</form>
<script>
    document.getElementById('searchForm').onsubmit = function() {
        var searchValue = this.search.value;
        // process
        return false;
    }
</script>

document.getElementById('searchForm')。onsubmit=function(){
var searchValue=this.search.value;
//过程
返回false;
}

可能是这样。

当只有一个文本输入时,无论按钮(如果有的话)是否有type=“submit”,都会发生这种情况。这里有记录。
因此,正如前面其他人所建议的,您只需停止此默认行为。

只需将以下javascript代码添加到Visualforce页面:

<script type='text/javascript'>
function stopRKey(evt) 
{
   var evt=(evt) ? evt : ((event) ? event : null);
   var node=(evt.target)?evt.target:((evt.srcElement)?evt.srcElement:null);
   if ((evt.keyCode == 13) && (node.type=="text")) {return false;}
}

document.onkeypress = stopRKey;
</script>

功能停止键(evt)
{
var evt=(evt)?evt:((事件)?事件:空);
var节点=(evt.target)?evt.target:((evt.srcement)?evt.srcement:null);
if((evt.keyCode==13)和(&&(node.type==“text”){return false;}
}
document.onkeypress=stopRKey;

您在
keyPressed()
中说
event.cancelBubble=true
,但在
keyPressed()
中没有
事件
-这是在
onKeyDown
回调中!