更改keydown事件的值刷新页面

时间:2011-11-01 11:50:04

标签: javascript jquery

我正在使用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();
        });

3 个答案:

答案 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;

...因此将始终阻止默认处理