我想要做的就是当用户输入我的应用程序时显示在该输入中键入的值的消息,我将有很多输入,因此通过选择输入ID不是一个选项,那我怎么解决这个问题呢?我要做的就是选择$(this).value
,但我只能得到"未完成",这里是我尝试做的示例代码
var timer = null;
$(document).ready(function () {
$('input').keydown(function (event) {
clearTimeout(timer);
timer = setTimeout(validarType, 1000)
});
});
function validarType() {
var xd = $(this).value;
alert(xd);
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text"/>
&#13;
答案 0 :(得分:4)
您的代码无法正常工作
this
与调用处理程序时的this
不同 - 因为您是在超时内调用此函数。
$(this)
是一个jQuery对象 - 没有value
属性
正确的代码:
var timer = null;
$(document).ready(function () {
$('input').keydown(function (event) {
clearTimeout(timer);
timer = setTimeout(validarType.bind(this), 1000) //bind the existing context
});
});
function validarType() {
var xd = this.value; //this is now a regular DOM element - and has a value attribute
alert(xd);
}