2011-10-24 138 views
0

使用jquery如何限制可以在文本字段中輸入的字符數?不是指textarea,只是一個普通的文本輸入框。我有一個表單,並通過使用IOS5的iPad進行查看,出於某種原因maxlength屬性被忽略。如果我使用maxlength = 10,我可以永遠在這個字段中輸入,它不會停在10個字符處。所以看起來我需要jquery來限制這個領域。有什麼建議麼?Jquery - 在文本輸入中限制文本,而不是textarea

更新

使用從maxedison的例子,從馬克·B中的建議,這是我想出了代碼工作:

$('#textfld','#textform').keyup(function() { 

    if($(this).val().length > 20) { 

     var text = $(this).val().substring(0,20); 
     $(this).val(text); 

    } 

}); 

回答

4

您需要綁定爲的keydown事件現場並防止它進入一個字符,如果已有10個在這一領域:http://jsfiddle.net/j6tJ3/

$('input').keydown(function(e){ 
     if($(this).val().length > 9 && e.which !== 8 && e.which !== 46){ //if it's too long and the key pressed isn't backspace or delete 
      return false; 
     } 
    }); 
+0

這會防止someo如果字符串在最大長度,則刪除字符。最好的辦法是檢查keyup,如果超出限制,用9char子字符串替換該字段的值。 –

+0

好點。我修改了IF語句以允許退格鍵和刪除鍵。使用鍵控並不是一個好的選擇,因爲你會看到鍵被輸入然後被刪除。我的解決方案現在不處理的一種情況是,如果有人試圖複製和粘貼更長的字符串。如果「e」屬性的metaKey值爲true,並禁用右鍵單擊,則可以通過禁止該字符的輸入來解決該問題。但我認爲這樣做太過分了,最好在提交表單前簡單檢查一下價值,並提醒用戶是否存在問題。 – maxedison

相關問題