Javascript 更改keydown事件上的值将刷新页面
我正在用jQuery做一个计算器。问题是,在keydown上,我调用了计算并返回值的calculate函数。但是,如果我更改文本框中的值,然后再次按下向下键,页面将刷新,所有内容均为空白 如果用户更改文本框中的值,我不希望页面刷新。它应该再次调用calculate函数,返回并显示新结果 代码如下:Javascript 更改keydown事件上的值将刷新页面,javascript,jquery,Javascript,Jquery,我正在用jQuery做一个计算器。问题是,在keydown上,我调用了计算并返回值的calculate函数。但是,如果我更改文本框中的值,然后再次按下向下键,页面将刷新,所有内容均为空白 如果用户更改文本框中的值,我不希望页面刷新。它应该再次调用calculate函数,返回并显示新结果 代码如下: lgpm.keydown(function(event){ var keycode = (event.keyCode ? event.keyCode : event.whic
lgpm.keydown(function(event){
var keycode = (event.keyCode ? event.keyCode : event.which);
if(keycode == '13'){
if (formValidate()){
event.preventDefault();
return false;
}
else {
calculateMet();
}
}
event.stopPropagation();
});
每当按下enter键时,都需要调用
event.preventDefault()
方法-否则它将提交表单-试试这个
lgpm.keydown(function(event){
var keycode = (event.keyCode ? event.keyCode : event.which);
if(keycode == '13'){
event.preventDefault();
if (formValidate()){
return false;
}
else {
calculateMet();
}
}
event.stopPropagation();
});
尝试在event.preventDefault()之后添加event.stopPropagation()将您的正文更改为:
if(keycode == '13'){
if (formValidate()){
event.preventDefault();
} else {
calculateGravelMetric();
}
}
return false;
。。。因此,默认处理将始终被阻止HTML外观如何(包括
标记)?此代码不起作用。它不会刷新页面,但在第二次按键时也不会调用calculate函数。好吧,我刚刚意识到它可以工作。但它只接受被按下/按下的文本框的新值[这是用户输入的表单的最后一个文本框]。如果我更改其他文本框的值,然后在最后一个文本框上按向下键,则不会调用计算函数,即,我假设没有检索到文本框的新值。您是否可以在JSFiddle.net上发布完整代码?这将使调试变得更容易。。。为什么在那里有stopPropagation方法?以下是JSFIDLE上的代码:我不确定为什么javascript在那里不工作。@fuz3d您在那里有很多错误。。。我已经更新了。。。。