所以我有一个输入栏,可以输入文字。
我试图让console.log在用户点击退格时立即运行,因为这会使输入没有值。
现在,只有在输入中没有任何值的情况下单击退格时,console.log才会运行。
目标 - 如果单击退格键,控制台应仅运行,导致输入为空。
$("#friendsNames").keydown(function(event){
if (event.keyCode == 8) {
if ($("#friendsNames").val() == "") {
console.log("Works!");
}
}
});
<input type="text" name="namesOfFriend" id="friendsNames" value="" />
答案 0 :(得分:2)
我建议根本不跟踪击键,而是使用input
事件监视框中的内容,该事件会在内容发生变化时触发:
$("#friendsNames").on('input', function(event) {
if (this.value.length === 0) {
console.log("Works!");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="namesOfFriend" id="friendsNames" value="" />
这可确保导致输入变为空的任何交互将触发您的代码。
答案 1 :(得分:0)
据我所知,你希望console.log只在输入框中的任何值处执行,否则它不应该执行,对吧?基于此,下面是代码:
$("#friendsNames").on('input', function(){
var inputValue = $(this).val();
if(inputValue.length == 0)
console.log("Works!");
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="namesOfFriend" id="friendsNames" value="" />
&#13;
答案 2 :(得分:0)
如果输入字段为空,请尝试在keyup
coz上发生事件,并且您将在console.log()
次调用中输入第一个字符。请尝试使用此代码或查看提及链接JSFiddle
JAVASCRIPT代码 -
$("#friendsNames").keyup(function(event) {
if (event.keyCode == 8 && $(this).val() == "") {
console.log("Works!");
}
});
答案 3 :(得分:0)
$("#friendsNames").keypress(function(event) {
if (event.keyCode == 8 || $(this).val() != "") {
alert("Works!");
}
});