0

テキストフィールドでreturnキーを押した後、ページが更新されないようにしようとしています。

<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 に答える