2016-12-06 11 views
-4

なぜ私の関数はこの特定のコードで警告を返しませんか?あなたはあなたの関数でevent引数を渡す必要がありonkeydownはjavascriptで動作しません

<input type="text" id="searchString" name="searchString" onkeydown="searchString();"/> 
+1

クリックハンドラの引数に 'event'を指定する必要があります – nem035

+2

どうすればいいですか? 'function searchString(event)'のようなものですか? – laine

+1

ええと、まったく:) – nem035

答えて

2

function searchString() { 
    if (event.keyCode == alert("Success!"); } 
} 

は、ここに私のHTMLコードです。

function searchString(event) { 
    if(event.keyCode == 13) { 
    alert("Success!"); 
    } 
} 

document.querySelector('input').addEventListener('keyup', searchString); 
 

 
function searchString(event) { 
 
    if (event.keyCode == 13) { 
 
    alert("Success!"); 
 
    } 
 
}
<p>Press the <b>enter</b> key in the input below see your alert</p> 
 

 
<input type="text" />

0

あなたは純粋なJavaScriptでそれを行うことができます:あなたはkeyCodeメソッドを呼び出すしようとすると、それ以外の場合eventは未定義です

const search = document.getElementById('searchString'); 

search.addEventListener('keydown', (e) => { 
    if (e.keyCode === 13) { 
    // your code here 
    } 
} 

注:13キーであります入力用のコード

0

実際にeventが引数として渡されていることを確認する必要があります。そうしないと、関数内で認識されません。どのコードがどのキーに関連付けられているかを確認するには、以下を試してください。

function check(event) 
{ 
    var keycode = event.keyCode; 
    alert(keycode); 
} 

そして...

<input type="text" id="check" name="check" onkeydown="check();">

リターンキーは '13' で結ばれています。ですから、押されたときに何かをやりたければ、次のようにします。

function searchString(event) 
{ 
    if(event.keyCode === 13) { 
     alert("return key was pressed"); 
     // do something .... 
    } 
} 

また、htmlコードは次のようになります。

<input type="text" id="searchString" name="searchString" onkeydown="searchString();"> 

「===」の代わりに「===」を使用しています。これは現在推奨されている方法です。また、inputの末尾のスラッシュは必要ありません。

関連する問題