0

Enter キーを押すか送信ボタンを押すと、リストにアイテムを追加するフォームがあります。何を変更したかはわかりませんが、突然 Enter キーを押すと URL がリダイレクトされるように見えますが、ボタンをクリックすると正常に動作します。

HTML 部分は次のようになります。

<form id="add-ingr">
    <input class="new-ingredient" type="text" size="50" name="new-ingredient" placeholder=" Your ingredient"></input>
    <img id="check" src="imgs/check.png" alt=""/>
</form>

jQuery は次のとおりです。

$('#check').click(function () {
    addIngredient('new-ingredient');
});
$('.new-ingredient').keypress(function (e) {
    if (e.keyCode == 13) {
        addIngredient('new-ingredient');
    }
});

したがって、どちらの方法でも同じ機能を実行しています。どちらの場合も、成分をリストに正常に追加しますが、2 番目のケースでは、ページが「recipe.html」から「recipe.html?new-ingredient="」にリダイレクトされます。そして、これが本当に私を混乱させる部分です:フォームに余分な入力を追加すると、どちらのボックスでもEnterキーを押してもこの問題は発生しません:

<form id="add-ingr">
    <input class="new-ingredient" type="text" size="50" name="new-ingredient" placeholder=" Your ingredient"></input>
    <img id="check" src="imgs/check.png" alt=""/>
    <input type="text"></input>
</form>

また、実際のボタン (クリック可能な画像ではない) を追加すると、ボタンが押された場合に何もするコードがなくても、Enter キーを押すようにリダイレクトされます。この場合、追加の入力フィールドは効果がありません。

<form id="add-ingr">
    <input class="new-ingredient" type="text" size="50" name="new-ingredient" placeholder=" Your ingredient"></input>
    <img id="check" src="imgs/check.png" alt=""/>
    <button id="button">Add Ingredient</button>
</form>

なぜこれが起こっているのか、私にはまったくわかりません。Enterキーを押したときにアクションを実行するためにjQueryを削除しても、これは引き続き発生します。私は JavaScript を初めて使用するので、これが明らかな場合は申し訳ありませんが、助けていただければ幸いです。

関連する場合は、コードをさらに提供することもできますが、大量のコードで物事を詰まらせたくありませんでした。

4

2 に答える 2