2013-04-14 60 views
0

我的任務是創建一個計數器/限制器,當達到限制時彈出一個窗口。我做了這個代碼:彈出的剩餘字符計數器

$(document).ready(function() { 
    $('#message-input').keyup(updateCounter); 
}); 

function updateCounter() { 

    var value = $('#message-input').val(); 

    if (value.length > 256) { 
     alert('Túl hosszú az üzenet!'); 
     return false; 
    } 

    var remaining = 256 - value.length; 
    $('#counter').text(remaining); 

    return true; 
} 

此代碼的偉大工程,但有一個很大的問題:如果達到了極限,我可以按任何事情,總是在窗口彈出,即使我按空格鍵。我該如何糾正?

回答

1

可以以保持的256個字符的長度,用例如子刪除最後一個字母。

1

試試這個:

$(document).ready(function() { 
    $('#message-input').keyup(updateCounter); 
}); 

function updateCounter(e) { 
    if($inArray(e.which, [8, 37, 38, 39, 40])) return true; // If keycode = backspace, left, top, right, bottom array, than continue. 

    var value = $('#message-input').val(); 

    if (value.length > 256) { 
     alert('Túl hosszú az üzenet!'); 
     return false; 
    } 

    var remaining = 256 - value.length; 
    $('#counter').text(remaining); 

    return true; 
}