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