jQuery与"onkeypress"滞后来做出改变

tho*_*yer 0 javascript jquery

我有一个带有文本的跨度,假设我在文本框中按某些东西后会不断变化.

<input type="text" class="response" onkeypress="return ChangeSpan()" id="how_many" name="how_many" placeholder="Enter how many..." />
Run Code Online (Sandbox Code Playgroud)

和我的jQuery:

<script type="text/javascript">
function ChangeSpan() {
    var text = $("#how_many").val();
    $('#changeText').text(text);
}
</script>
Run Code Online (Sandbox Code Playgroud)

它工作得非常好,但是当我按下"dfg"它时,它只能"df"在跨度上出现.只有当我添加下一个字符时,才会添加"g".

我希望它也能回应最后一个角色,我该怎么做?

epa*_*llo 6

您可能想要使用keyup.

你使用jQuery并内联添加事件?这是不好的做法.使用on附加事件.

$("#how_many").on("keyup", function(){ $('#changeText').text( this.value ); });
Run Code Online (Sandbox Code Playgroud)

quirksmode上解释了keyup,keydown和keypress之间的区别.