延遲,我得到這個代碼:jQuery的 - 正確的輸入最小值/最大值與KEYUP
var $this = $(this);
var val = $this.val();
var max = $this.attr("max");
var min = $this.attr("min");
if (max > 0 && val > max){
e.preventDefault();
$this.val(max);
}
else if (min > 0 && val < min)
{
e.preventDefault();
$this.val(min);
}
問題是,例如當min/max
是70/250
和用戶嘗試鍵入200
它就會瞬間從2
到70
修正-_-所以我需要keyup
超時/延遲,所以我嘗試:
var delay = (function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
};
})();
$("input").keyup(function(e) {
delay(function(){
var $this = $(this);
var val = $this.val();
var max = $this.attr("max");
var min = $this.attr("min");
if (max > 0 && val > max){
e.preventDefault();
$this.val(max);
}
else if (min > 0 && val < min)
{
e.preventDefault();
$this.val(min);
}
}, 1000);
});
但現在是沒有得到執行校正。如何做到這一點?有沒有人有一個完全的想法來解決「打字200沒有得到即時糾正」的問題?
也許onchange而不是keyup?所以你只能在完成'輸入'後才改變用戶輸入 – naortor
不錯,我認爲我會去那謝謝:D但是你是否仍然有解決方案的鍵盤延遲?我承擔不起更多「未解決」的問題,否則我將無法再提問xD –