テキストを入力してEnterキーを押すと、テキストボックスが消えてしまいます。しかし、それは何らかの理由で、私が ';'をタイプすると消えるだけです。他の文字は動作しないようです。JavaScriptは、テキストフィールドに ';'
function enterPressed(e, field) {
if (e.keyCode == 13) {
var tb = document.getElementById("searchbox");
eval(tb.value);
\t \t if (field.value.length > 0) {
\t document.getElementById('searchdisappear').style.display='none';
\t \t }
\t }
}
<!DOCTYPE html>
<html lang = "en">
\t <head>
\t \t <link rel="stylesheet" type="text/css" href="./css/main.css">
\t \t <script src ="./js/search.js"></script>
\t </head>
\t
\t <body>
<!-- SEARCH BAR AND BUTTON -->
\t <div id="searchdisappear" style="display:block;">
\t \t <input id="searchbox" class="search" maxlength="200" type="text" onkeypress="enterPressed(event, searchbox)" placeholder="Search.."/>
\t \t <p class="searchtext" onclick="buttonClicked(searchbox)"
\t </div>
</html>
、ほとんどの場合はevalを使用することは悪い考えです。ユーザーの入力を信頼しないでください。 – Daedalus
なぜユーザーからの文字列で 'eval'を呼び出すのですか?これは悪い考えです。 – Amy
あなたのスニペットを試してみました。非数値、非文字のいずれかをタイプすると、eval()はスクリプトに失敗します。 – kazenorin