2009-08-20 51 views
0

我有一個文本框,必須有最少數量的字符以及最多數量的字符。在允許用戶提交表單之前,使用jQuery確保輸入在範圍內(同時向用戶顯示狀態消息)的最佳方式是什麼?使用jQuery進行客戶端文本框字符限制驗證?

更新:下面的代碼在某種程度上工作,但我在刪除文本時出現問題。由於它使用'keypress'來捕獲文本框中的事件,因此例如,當按下退格鍵時,'length'變量會錯誤地增加。看起來問題是,在事實之前檢索文本的長度爲,即按鍵總是會導致前面的內容的長度加1,這是什麼正確的方法?

更新:(!總是在服務器上驗證過)我想我使用KEYUP函數代替按鍵

回答

1

如果這是你的應用程序的唯一客戶端驗證解決了以前的問題,那麼它」 ð是這個樣子:

$("#your_textbox").keypress(function() { 
    var length = this.value.length; 
    if(length >= MIN && length <= MAX) { 
    $("#your_submit").removeAttr("disabled"); 
    $("#your_validation_div").hide(); 
    } else { 
    $("#your_submit").attr("disabled", "disabled"); 
    $("#your_validation_div").show(); 
    } 
}); 

如果您需要在您的應用程序有很多的驗證,你可能要考慮的validation plugin

設置maxlength attribute

<input type='text' maxlength="30" /> 
+0

的變化()函數似乎只有當我點擊了文本框的火災;在輸入到文本框中的每個新字符之後,如何才能讓它觸發?謝謝 – oym 2009-08-20 03:33:36

+0

改爲使用按鍵 - 我將更新代碼。 – 2009-08-20 03:47:29

+0

感謝您的更新......最後一件事 - 一旦長度等於MAX,我如何禁用文本框,以便用戶不能輸入更多字符?謝謝你的幫助! – oym 2009-08-20 03:50:06