表单pagerefresh中的返回命中无法阻止

时间:2013-01-11 10:32:54

标签: javascript html forms preventdefault

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

<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;
}

提前致谢,

1 个答案:

答案 0 :(得分:2)

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

这似乎发生在关键向下上,所以在关键向上时阻止此操作是太晚了。

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

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

JSFiddle demo