ユーザーが入力またはクリックしたときに検証したい入力フィールドがあります。このためには、イベントkeypress
とblur
を使用します。入力が検証に失敗すると、アラートボックスが呼び出されます。Javascript/JQuery:アラートボックスで2回トリガしないkeypress/blurイベントを追加する方法は? IEのみ
IE(すべてのバージョン)で、無効な入力でEnterキーを押すと、何らかの理由でkeypressとblurの両方のイベントが発生していることがわかりました(私は警告ボックスだと思っていますが、FF/Chrome)、同じアラートボックスの2つが表示されます。どうすれば1つしか表示されないのですか?
EDIT:FF/Chromeでは、入力で検証しようとした後にどこかをクリックすると、2番目の警告ボックスが表示されていました。
簡体コード:
$("#input-field").keypress(function(event) {
if (event.keycode == 13) {
event.stopPropagation();
validate();
return false;
}
});
$("#input-field").blur(function() {
validate();
});
function validate() {
if ($("#input-field").val() == '') {
alert("Invalid input");
}
}
EDIT:AH-HA。実際には修正されていませんが、私が忘れてしまった詳細は分かりません。無効な入力を以前の有効な値に復元する必要があるため、validate関数が再び値をチェックすると2回失敗しません。
警告は無効です。 – epascarello
@epascarello:検証コンテキストで何が悪いのかを説明してください。 – Blazemonger