2012-05-06 91 views
9

Tôi đang sử dụng trường văn bản trong biểu mẫu được tạo trên html và quá trình xử lý được thực hiện bằng php. Tôi muốn giới hạn số ký tự mà người dùng có thể nhập trong vùng văn bản. Có cách nào mà điều này có thể được thực hiện bởi vì các lĩnh vực textarea sau đó được lưu trữ vào một cơ sở dữ liệu mysql và do đó tôi phải giới hạn dữ liệu người dùng theo giá trị varchar của lĩnh vực này.cách giới hạn số lượng ký tự trong một trường xử lý văn bản php?

Bất kỳ trợ giúp nào?

Trả lời

18

Bạn có thể giới hạn điều này bằng cách đặt thuộc tính maxlength trên thẻ văn bản như <textarea maxlength="120"></textarea> trong HTML và chuỗi đầu vào "cắt" bổ sung bằng PHP theo hàm substr().

+0

cảm ơn một tấn! Điều đó đã đưa ra một ý tưởng làm thế nào để làm điều đó! Về cơ bản những gì tôi đã nhầm lẫn trong đã được thiết lập maxlength mà u chỉ đề nghị làm thế nào mà có thể được sử dụng! – user1373168

+0

được cho là không hoạt động trong IE –

+0

Tính năng này chỉ hoạt động trên IE10 +, Firefox, Chrome, Safari. Nhưng không phải Opera. – Napolux

8

Như đã đề cập bởi s.webbandit bạn có thể sử dụng maxlength, nhưng lưu ý rằng đây là một tính năng mới được giới thiệu trong HTML5, như W3 Schools article về <textarea>, vì vậy "đạn" Giải pháp này cần javascript. Vì vậy, maxlengthkhông được hỗ trợ trong Internet Explorer cho đến phiên bản 10 và trong Opera hoàn toàn không có.

Dưới đây là một cách tiếp cận có sử dụng Javascript để giúp bạn ra ngoài:

<script language="javascript" type="text/javascript"> 
    function charLimit(limitField, limitCount, limitNum) { 
    if (limitField.value.length > limitNum) { 
     limitField.value = limitField.value.substring(0, limitNum); 
    } else { 
     limitCount.value = limitNum - limitField.value.length; 
     } 
    } 
</script> 

Sau đó bạn có thể sử dụng nó như thế này (original source):

<textarea name="limitedtextarea" onKeyDown="charLimit(this.form.limitedtextarea,this.form.countdown,100);"> 
    </textarea> 

này sẽ giúp bạn đi.

+0

Bạn có lỗi đặt tên hàm trong thuộc tính onKeyDown, "charLimiti" phải là "charLimit" – thechrishaddad

1

Tôi đã thử nhiều cách khác nhau để giới hạn văn bản trong textareas và tốt nhất tôi đã tìm thấy (phía máy khách) là với plugin jQuery.Maxlength.js. Đơn giản nhanh chóng và bao gồm tất cả!

Bước 1. Bao gồm maxlength Plugin kịch bản

<script language="javascript" src="jquery.maxlength.js"></script> 

Bước 2. Thêm maxlength thuộc tính để

<textarea maxlength="35" 
    rows="5" cols="30" name="address"></textarea> 

Bước 3. Initialize Plugin

<script type="text/javascript"> 
    $(document).ready(function($) { 
      //Set maxlength of all the textarea (call plugin) 
      $().maxlength(); 
    }) 
</script> 

https://github.com/viralpatel/jquery.maxlength

4

Đây là một cách rất dễ dàng để giới hạn độ dài của vùng văn bản thông qua JavaScript.

vùng văn bản lĩnh vực:

<input class='textField' type='text' NAME='note1' value='' onkeyup='charLimit(this, 40);'> 

hàm JavaScript:

function charLimit(limitField, limitNum) { 
    if (limitField.value.length > limitNum) { 
    limitField.value = limitField.value.substring(0, limitNum);} 
} 

Khi người dùng nhập qua 40 ký tự nó chỉ loại bỏ chúng.

0
<script type="text/javascript"> 
     $(document).ready(function(){ 
     var maxChars = $("#sessionNumtext"); 
     var max_length = maxChars.attr('maxlength'); 
     if (max_length > 0) { 
      maxChars.bind('keyup', function(e){ 
       length = new Number(maxChars.val().length); 
       counter = max_length-length; 
       $("#sessionNum_counter").text(counter); 
      }); 
     } 
    }); 
</script> 

<textarea name="sessionNumtext" id="sessionNumtext" maxlength="20" type="text"></textarea> 
kalan karakter sayısı: <span id="sessionNum_counters">20</span> 
+1

Sẽ tốt hơn nếu bạn cung cấp một số chi tiết, giải thích, v.v. không chỉ mã. Chỉ là một ý nghĩ :) –

Các vấn đề liên quan