2010-11-21 11 views

答えて

1

、あなたはkeypressイベントのデフォルトのアクションを阻止する必要があります。これを行うための標準的な方法は、イベントオブジェクトのpreventDefault関数を呼び出すことです(IEの以前のバージョンでは使用できません)。古い方法は、イベントハンドラ関数からfalseを返すことです。両方を行う "ベルトとブレース"のアプローチには実際の害はありません。また、あなたの機能ビットを短縮することができます:-)

function InputKeyPress(e) { 
    var keyCode; 

    e = e || window.event; 
    keyCode = e.keyCode || e.which; 
    if (keyCode == 13) { 
     search(); 
     if (e.preventDefault) { 
      e.preventDefault(); 
     } 
     return false; 
    } 
} 
1

あなたが追加し、このように「falseを返す」する必要があります。

function InputKeyPress(e) { 
    if (!e) 
     e = window.event; 
    var keyCode = e.keyCode || e.which; 
    if (keyCode == 13) { 
     search(); 
     return false; 
    } 

    return true; 
} 

ともテキストボックスからの呼び出しを変更しますこれは:

<input .... onkeypress="return InputKeyPress(event);" ...> 

意味だけではなく、関数を呼び出す "それを返す"。

+0

本当に助かりました:)私たちは起動していて、そのバグが私を夢中にしていました。 – Miroo

+1

@Miroo問題はありません。 :) –

関連する問題