Простой ответ заключается в том, что когда вы пытаетесь определить значение переменной, находящейся в событии, она обрабатывается обработчиком события, и поэтому лучше всего зарегистрировать само событие.Таким образом, вы можете попробовать изменить свой код, чтобы приспособиться к этому, чтобы посмотреть, поможет ли это.Кроме того, я не согласен с приведенным выше ответом о необходимости установить / включить тайм-аут (функцию), если только вы не пытаетесь отменить какие-либо нажатия клавиш и т. Д. Чтобы уточнить:
<script type="text/javascript">
var xmlHttp = createXmlHttpRequestObject();
selectOption = document.getElementById('choose_colony') ;
document.body.onload = function () {
typehere = document.getElementById('typehere');
addAnEvent(typehere, "keydown", function(e) {
e = e || window.event;
handleKeyDownevent(e);}, false);
}
function handleKeyDownevent (e) {
e = e || window.event ;
if (xmlHttp) {
try {
//xmlHttp.open('GET' , 'async.txt', true ) ;
console.log(e.srcElement.value ) ;
var target= e.target || e.srcElement ;
var typed = target.value ;
if (typed != ""){
console.log('sennding request') ;
//ajax request
}
else {
console.log(e.srcElement.value + "is blank") ;
}
}
catch(e) {
console.log('could not connect to server') ;
}
}
return true;
}
</script>
Я надеюсь, что это поможет вам,return true
внизу разрешает ответ браузера по умолчанию.