我正在使用jQuery制作计算器。问题是在keydown上,我调用计算函数来计算并返回值。但是,如果我更改文本框中的值,并再次按下keydown,页面将刷新,并且所有内容都为空白。
如果用户更改了文本框中的值,我不希望页面刷新。它应该再次调用calculate函数并返回并显示新结果。
这是代码:
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();
});
答案 0 :(得分:1)
每当按下回车键时,都需要调用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();
});
答案 1 :(得分:0)
尝试在event.preventDefault()
之后添加event.stopPropagation()答案 2 :(得分:0)
将您的身体改为:
if(keycode == '13'){
if (formValidate()){
event.preventDefault();
} else {
calculateGravelMetric();
}
}
return false;
...因此将始终阻止默认处理