Я пытаюсь запустить прослушиватель фокуса, когда пользователь пытается ввести P.O. Поле в поле адреса. Я не могу редактировать вход для простого решения для клавишных. Что мне не хватает в моем коде, что я не получаю предупреждение?Фокус-прослушиватель событий не стреляет на неотредактированный ввод
<input type="text" size="25" maxlength="75" name="ShipAddress1" id="v65-onepage-shipaddr1" value="" style="" onkeydown="">
<script type="text/javascript">
document.addEventListener("focus", function killPObox(id) {
var idValue = document.getElementById('v65-onepage-shipaddr1').value;
if (id == 'v65-onepage-shipaddr1') {
function runVal() {
if (idValue.substr(0,4).toUpperCase() === "PO B" || idValue.substr(0,5) === "P.O. ") {
alert("USA Light cannot ship to P.O. Boxes. Please enter a street address.");
}
}
setInterval(runVal(),1);
}
}, true
);
</script>
'id' не является строкой, что это' Event' объект. Вы можете попробовать 'event.target.id' – Halcyon
Почему вы добавляете прослушиватель событий к документу вместо входного элемента? – Barmar
Следует отметить, что вы неправильно используете 'setInterval'. Вы должны передать ему обратный вызов, например 'setInterval (runVal, 1)' (обратите внимание на отсутствие скобок). Прямо сейчас вы передаете ему вывод 'runVal()', который ничего. Функция будет запускаться один раз, а затем никогда больше. – Halcyon