我需要找到一种方法来检测是否删除了空格或使用了退格键,如果是这样就运行一个函数。我正在使用JavaScript / jQuery进行开发。
我知道可以使用以下代码监听删除或退格键:
$(this).keyup(function(event) {
event.keyCode
然而,我不知道如何判断删除或退格命令是否删除了一个空格?非常感谢任何建议。
我需要找到一种方法来检测是否删除了空格或使用了退格键,如果是这样就运行一个函数。我正在使用JavaScript / jQuery进行开发。
我知道可以使用以下代码监听删除或退格键:
$(this).keyup(function(event) {
event.keyCode
绑定 keydown 事件并比较前后的值,以查看是否减小了大小。
$(input).keydown(function(){
var currVal = this.value, self = this;
setTimeout(function(){
if ( currVal.length > self.value.length ) {
console.log(currVal.length - self.value.length + " characters have been removed.");
}
},0);
});
Updated sample:
$("input").keydown(function() {
var currVal = this.value,
self = this;
setTimeout(function() {
if (currVal.length - self.value.length === 1) {
var origVal = $.grep(currVal.split(""),function(val){
return val === " ";
});
var newVal = $.grep(self.value.split(""),function(val){
return val === " ";
});
if ( origVal.length != newVal.length ) {
console.log("a space was removed");
}
}
}, 0);
});
(function(){
var currentWhitespaceCount;
$("input").keyup(function(e){
var newCount = ($(this).val().match(/\s/g) || []).length;
if (newCount < currentWhitespaceCount)
alert("You removed one or more spaces, fool.");
currentWhitespaceCount = newCount;
});
})();
这是我的代码 http://jsbin.com/atuwez/3/edit
var input = $('#input'),
afterLength,
beforeLength;
input.on({
'keydown': function () {
beforeLength = input.val().split(/\s/).length;
},
'keyup': function(event) {
var key = event.keyCode || event.charCode;
if( key == 8 || key == 46 ) {
afterLength = input.val().split(/\s/).length;
console.log(beforeLength == afterLength);
}
}
});