Я пытаюсь заставить прослушиватель событий фокуса срабатывать, когда пользователь пытается ввести 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
- person Halcyon   schedule 24.04.2015setInterval
неправильно. Вы должны передать ему обратный вызов, напримерsetInterval(runVal, 1)
(обратите внимание на отсутствие скобок). Прямо сейчас вы передаете ему выводrunVal()
, который ничего не значит. Функция запустится один раз и больше никогда. - person Halcyon   schedule 24.04.2015