2011-12-17 58 views
96

Làm cách nào để giới hạn hoặc hạn chế người dùng chỉ nhập tối đa năm ký tự trong hộp văn bản?Giới hạn số ký tự được phép trong trường văn bản nhập biểu mẫu

Dưới đây là lĩnh vực đầu vào như một phần của hình thức của tôi:

<input type="text" id="sessionNo" name="sessionNum" /> 

Có sử dụng một cái gì đó giống như MAXSIZE hoặc một cái gì đó như thế?

+13

Đây '' ** Live Demo: ** http://jsfiddle.net/mcBbW/1/ –

Trả lời

134

maxlength:

Số ký tự tối đa sẽ được chấp nhận như là đầu vào. Điều này có thể lớn hơn được chỉ định bởi SIZE, trong trường hợp này, trường sẽ cuộn một cách thích hợp. Mặc định là không giới hạn.

<input type="text" maxlength="2" id="sessionNo" name="sessionNum" onkeypress="return isNumberKey(event)" /> 

Tuy nhiên, điều này có thể hoặc có thể không bị ảnh hưởng bởi điều khiển của bạn. Bạn có thể cần phải sử dụng hoặc thêm một hàm xử lý khác để kiểm tra độ dài, là tốt.

+0

Tôi thấy câu trả lời này hữu ích khi giới hạn trong giai đoạn đầu vào. Bạn cũng có thể giới hạn nó trong giai đoạn xác thực khi gửi và bật lên một thông báo xác thực bằng cách sử dụng thuộc tính 'pattern'. Xem http://stackoverflow.com/questions/10281962/is-there-a-minlength-validation-attribute-in-html5 – ibgib

24

Cách đơn giản nhất để làm như vậy:

maxlength="5" 

Vì vậy .. Thêm thuộc tính này để kiểm soát của bạn:

<input type="text" 
    id="sessionNo" 
    name="sessionNum" 
    onkeypress="return isNumberKey(event)" 
    maxlength="5" /> 
7

Thêm dòng sau vào tiêu đề:

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

    <input type="text" id="sessionNo" name="sessionNum" onKeyDown="limitText(this,5);" 
onKeyUp="limitText(this,5);"" /> 
+0

'this.form.sessionNo' có vẻ hơi nghi ngờ. Tại sao không chỉ 'này'? Ngoài ra, 'limitCount' và' limitNum' cũng có vẻ không đúng thứ tự/không cần thiết? –

+1

Đã sửa lỗi. Làm theo cách này nếu bạn muốn giới hạn nó với một số ký tự hoặc số bạn có thể, nhưng nếu bạn không quan tâm về điều đó thì Độ dài tối đa sẽ hoạt động tốt. Vì vậy, nếu bạn muốn các giá trị nằm trong khoảng từ 1-50 bạn có thể hoặc tất cả các số dương, v.v. – codemonkeyww

+0

'this.form.sessionNo' vẫn không có vẻ đúng. 'this' trong ngữ cảnh đó sẽ trỏ đến' input', không phải 'document'. –

6

Theo đến w3c, giá trị mặc định cho thuộc tính MAXLENGTH là số không giới hạn. Vì vậy, nếu bạn không chỉ định người dùng tối đa có thể cắt và dán kinh thánh một vài lần và dán nó vào biểu mẫu của bạn.

Thậm chí nếu bạn chỉ định MAXLENGTH cho một số hợp lý, hãy kiểm tra lại độ dài của dữ liệu đã gửi trên máy chủ trước khi xử lý (sử dụng một cái gì đó như php hoặc asp) vì nó khá dễ dàng để vượt qua giới hạn MAXLENGTH cơ bản nào

+0

Làm cách nào để người dùng có được độ dài tối đa ??? – lopezdp

+1

@ lopezdp, có nhiều cách để "tránh xung quanh" các hạn chế về html/javascript. Cách dễ nhất để kiểm tra là mở trang của bạn bằng Chrome, "kiểm tra phần tử" và sửa đổi HTML theo cách thủ công. Cách phức tạp hơn để có được xung quanh - viết một kịch bản mà sẽ đăng dữ liệu bỏ qua bất kỳ hạn chế (sử dụng thư viện curl hoặc một cái gì đó tương tự). Là nhà phát triển phụ trợ, bạn không bao giờ nên tin cậy xác thực giao diện người dùng của dữ liệu - tất cả các quy tắc phải được sao chép trên máy chủ. Xác nhận giao diện người dùng chỉ là một cách để tiết kiệm thời gian cho người dùng bằng cách chỉ ra các lỗi rõ ràng mà không cần gửi yêu cầu đến máy chủ. –

2

tôi nhất luôn làm điều đó như thế này:

$(document).ready(function(){ 
var maxChars = $("#sessionNum"); 
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); 
    }); 
} 
}); 

Input:

<input name="sessionNum" id="sessionNum" maxlength="5" type="text"> 
Number of chars: <span id="sessionNum_counter">5</span> 
3

làm cho nó đơn giản hơn

 <input type="text" maxlength="3" /> 

và sử dụng cảnh báo để hiển thị rằng ký tự tối đa đã được sử dụng.

2
<input type="text" maxlength="5"> 

số lượng tối đa các chữ cái có thể ở đầu vào là 5.

1

Bạn có thể sử dụng <input type = "text" maxlength="9"> hoặc

<input type = "number" maxlength="9"> cho số hoặc <input type = "email" maxlength="9"> cho email xác nhận sẽ hiển thị

1

maxlength

Số ký tự tối đa sẽ được chấp nhận như là đầu vào. Thuộc tính maxlength chỉ định số ký tự tối đa được phép trong phần tử.

Maxlength W3 schools

<form action="/action_page.php"> 
    Username: <input type="text" name="usrname" maxlength="5"><br> 
    <input type="submit" value="Submit"> 
    </form> 

Output

Output Image

MINLENGTH

ng-minlength

Chỉ thị ng-MINLENGTH thêm một hạn chế đến một lĩnh vực đầu vào, và đến trình xác thực của biểu mẫu.

Chỉ thị ng-minlength sẽ thêm trạng thái "không hợp lệ" của trường nhập nếu độ dài của giá trị nhỏ hơn giá trị được chỉ định.

Lưu ý: Nếu giá trị trống, giá trị được coi là hợp lệ.

<form name="myForm"> 
     <input name="myInput" ng-model="myInput" ng-minlength="5"> 
     <h1 ng-if="!myForm.myInput.$valid">The value is too short</h1> 
    </form> 

Output

enter image description here

Max

Thuộc tính max xác định giá trị tối đa cho một phần tử.

Mẹo: Sử dụng thuộc tính tối đa cùng với thuộc tính min để tạo một phạm vi giá trị pháp lý.

Lưu ý: Thuộc tính tối đa và phút hoạt động với các loại đầu vào sau: số, phạm vi, ngày, giờ, giờ, giờ địa phương, tháng, thời gian và tuần.

<form> 
     <input type="number" name="number" max="5"> 
    </form> 

Output

enter image description here

Max and min diffrence

Min

Thuộc tính phút xác định giá trị tối thiểu cho một phần tử.

Mẹo: Sử dụng thuộc tính min cùng với thuộc tính tối đa để tạo phạm vi giá trị pháp lý.

Lưu ý: Thuộc tính tối đa và phút hoạt động với các loại đầu vào sau: số, phạm vi, ngày, giờ, giờ, giờ địa phương, tháng, thời gian và tuần.

<form > 
    <input type="number" name="quantity" min="1"><br> 
    <input type="submit"> 
    </form> 

Output

enter image description here

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