id 'typehere'の入力タイプです。タイプエリアにはキーダウンイベントが設定されています。簡単な問題は、e.srcElement.valueの値が1つ遅れているようです。つまり、その値が ''であるべきであれば、その値はブランクとしてログに記録されます。私が 'ss'と入力すると、表示される値は 's'になります。私はこれを理解することができない。e.target.valueは、1つのキー 'behind'の値を示します。
console.log(e)は、コンソールのe.srcElement.valueの正しい値を示しますが、console.log(e.srcElement.value)は間違った値を示しています。どうして?
<script type="text/javascript">
var xmlHttp = createXmlHttpRequestObject();
selectOption = document.getElementById('choose_colony') ;
document.body.onload = function() {
typehere = document.getElementById('typehere') ;
addAnEvent(typehere,"keydown",handleKeyDownevent,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') ;
}
}
}
</script>
スクリプトタグは、タグの前ところで
を前に解雇されたおかげで
私のコードで同じことを実装するのに問題があります。しかし、これは明らかに解決策です。ありがとう –
それはうまくいった。私は間違ってsettimeoutを使用していました。 –
'keyup'は役に立ちませんか? ...ユーザーがキーを離すのをどれくらい待つべきですか? – Stefan