0

在我的文本字段中点击返回后,我试图阻止我的页面刷新:

<input onkeyup="keyPressCodetitle(event, false, false, 0, 6, 20);" class="form_field" id="codeTitle" type="text" name="codename">

但不知何故,即使有(据我所知)阻止它刷新页面的必要要求,keyPressCodetitle 功能也不会阻止这种情况。(但是,它在 if 语句中相应地显示警报等。因此该功能和 if 工作正常)

我可能错过了什么吗?

function keyPressCodetitle (e, caseBoolean, isFragment, generalCode, sourceId, projectId, method) {
    //Get the key entered via onpress(Which for firefox)
    var keycode = (e.keyCode ? e.keyCode : e.which);
    if(keycode == '13'){
        e.preventDefault();
        //Functioncall here
    } else {
        //other function here when not pressing return  
    }
    return false;
}

提前致谢,

4

1 回答 1

2

不是“[Return] 使页面刷新”;一些(很多?)浏览器默认情况下会将文本输入中的 [Return] 视为表单提交的标志。

这似乎发生在 key down上,所以在 key up上阻止这种情况为时已晚。

添加额外的侦听器onkeydown可能会有所帮助:

<input onkeydown="preventSubmit(event);" onkeyup="keyPressCodeTitle(event);" />

JSFiddle 演示

于 2013-01-11T10:54:25.170 回答