Javascript 为什么我的文本框的onchange事件在模糊时触发-不是由每个键入的字符触发?
为什么我的文本框的Javascript 为什么我的文本框的onchange事件在模糊时触发-不是由每个键入的字符触发?,javascript,asp.net,events,text,textbox,Javascript,Asp.net,Events,Text,Textbox,为什么我的文本框的onchange事件会在模糊上触发,但不会在每个键入的字符上触发 我想通过键盘按每种类型在文本框中输入完整的文本 但是,onchange事件只在blur上触发 此外,onkeyup-onkeypress-onkeydown事件没有帮助,因为这些事件首先触发,然后最后输入的字符应用于文本框 我应该使用什么事件或如何使用它?在您输入文本后,onkeyup事件将触发: onkeyup='alert(document.getElementById("myTextBox").value)
onchange
事件会在模糊上触发,但不会在每个键入的字符上触发
我想通过键盘按每种类型在文本框中输入完整的文本
但是,onchang
e事件只在blur上触发
此外,onkeyup-onkeypress-onkeydown
事件没有帮助,因为这些事件首先触发,然后最后输入的字符应用于文本框
我应该使用什么事件或如何使用它?在您输入文本后,onkeyup事件将触发:
onkeyup='alert(document.getElementById("myTextBox").value);'
输入文本后,将触发onkeyup事件:
onkeyup='alert(document.getElementById("myTextBox").value);'
您需要使用keyup、keydown或它们的组合。在keydown处理程序中,您可以获取文本框的before事件值。在keyup处理程序期间,可以获取after事件值。如果你得到一个空字符串,你就做错了 编辑:下面是一个示例,演示这两个事件是如何工作的。在第一个框中键入将更新其他两个框
<table>
<tr>
<td>input</td>
<td><input type="text" id="textin" /></td>
</tr>
<tr>
<td>keydown</td>
<td><input type="text" id="keydownout" /></td>
</tr>
<tr>
<td>keyup</td>
<td><input type="text" id="keyupout" /></td>
</tr>
</table>
<script>
var readbox = document.getElementById('textin');
var keydownbox = document.getElementById('keydownout');
var keyupbox = document.getElementById('keyupout');
function keydownhandler(e) {
keydownbox.value = readbox.value;
}
function keyuphandler(e) {
keyupbox.value = readbox.value;
}
readbox.addEventListener('keydown', keydownhandler, false);
readbox.addEventListener('keyup', keyuphandler, false);
</script>
输入
键盘按下
弹起
var readbox=document.getElementById('textin');
var keydownbox=document.getElementById('keydownout');
var keyupox=document.getElementById('keyupout');
函数keydownhandler(e){
keydownbox.value=readbox.value;
}
函数keyuphandler(e){
keypubbox.value=readbox.value;
}
addEventListener('keydown',keydownhandler,false);
addEventListener('keyup',keyuphandler,false);
(适用于firefox/chrome)您需要keypup、keydown或它们的组合。在keydown处理程序中,您可以获取文本框的before事件值。在keyup处理程序期间,可以获取after事件值。如果你得到一个空字符串,你就做错了 编辑:下面是一个示例,演示这两个事件是如何工作的。在第一个框中键入将更新其他两个框
<table>
<tr>
<td>input</td>
<td><input type="text" id="textin" /></td>
</tr>
<tr>
<td>keydown</td>
<td><input type="text" id="keydownout" /></td>
</tr>
<tr>
<td>keyup</td>
<td><input type="text" id="keyupout" /></td>
</tr>
</table>
<script>
var readbox = document.getElementById('textin');
var keydownbox = document.getElementById('keydownout');
var keyupbox = document.getElementById('keyupout');
function keydownhandler(e) {
keydownbox.value = readbox.value;
}
function keyuphandler(e) {
keyupbox.value = readbox.value;
}
readbox.addEventListener('keydown', keydownhandler, false);
readbox.addEventListener('keyup', keyuphandler, false);
</script>
输入
键盘按下
弹起
var readbox=document.getElementById('textin');
var keydownbox=document.getElementById('keydownout');
var keyupox=document.getElementById('keyupout');
函数keydownhandler(e){
keydownbox.value=readbox.value;
}
函数keyuphandler(e){
keypubbox.value=readbox.value;
}
addEventListener('keydown',keydownhandler,false);
addEventListener('keyup',keyuphandler,false);
(适用于firefox/chrome)读了你的问题后,我真的迷路了!如果不是关键事件,它将如何改变?嗨,亲爱的朋友/测试它!/例如,当您使用onkeyup并在文本框中键入一个字符(如“a”)时,首先触发onkeyup,当您在onkeyup函数中使用textbox.value时,它会显示空字符串。。。onkeyup事件结束后,“a”字符出现在文本框/上,但我希望它出现在onkeyup函数上!知道吗?看完你的问题我真的迷路了!如果不是关键事件,它将如何改变?嗨,亲爱的朋友/测试它!/例如,当您使用onkeyup并在文本框中键入一个字符(如“a”)时,首先触发onkeyup,当您在onkeyup函数中使用textbox.value时,它会显示空字符串。。。onkeyup事件结束后,“a”字符出现在文本框/上,但我希望它出现在onkeyup函数上!有什么想法吗?真的非常感谢你的回答。。。。但它仍然丢失了一个字符(上次输入),有人告诉我在keyup事件中使用setTimer来获取文本框值!我不知道做什么是最好的还是没有什么好主意?我已经用一个例子更新了我的帖子。如果您期望的行为与示例提供的不同,请告诉我们可能是什么。非常感谢您的回答。。。。但它仍然丢失了一个字符(上次输入),有人告诉我在keyup事件中使用setTimer来获取文本框值!我不知道做什么是最好的还是没有什么好主意?我已经用一个例子更新了我的帖子。如果您期望的行为与示例提供的不同,请告诉我们可能是什么。我这样做了/但它给了我文档。getElementById(“myTextBox”).Length-1字符/i不是最后输入的字符。我这样做了/但它给了我文档。getElementById(“myTextBox”)。Length-1字符/i不是最后输入的字符