2012-05-14 39 views
11

Tôi có một điều khiển TextArea() trong Chế độ xem của tôi được triển khai bằng Razor Engine.cách thêm maxlength cho TextAreaFor in View bằng dao cạo

@Html.TextArea("EventNature",new { style = "width: 200px; height: 100px;" }) 

Làm cách nào tôi có thể đặt thuộc tính Độ dài tối đa cho điều khiển này?
có bất kỳ Thuộc tính được xây dựng trong RazorEngine hoặc tôi có phải sử dụng tập lệnh không?

+0

Lưu ý rằng bạn không sử dụng 'TextAreaFor' trong câu hỏi của bạn ... – gdoron

Trả lời

27

Bạn có thể làm điều đó thích:

@Html.TextArea("EventNature",new { maxlength=50, // or other value 
            style = "width: 200px; height: 100px;" }) 

Chỉ cần lưu ý đó là thuộc tính một HTML5

maxlength HTML5
Số ký tự tối đa (Unicode điểm code) mà người dùng có thể đi vào. Nếu nó không được chỉ định, người dùng có thể nhập một số lượng không giới hạn các ký tự.

MDN


Javascript (sử dụng jQuery) xác nhận cho HTML < 5:

$('#EventNature').keypress(function(){ 
    if (this.value.length >= 10) // allowing you to enter only 10 chars. 
    return false;   
});​ 

DEMO

+0

Thnx ... bất kỳ cách nào tôi đã sử dụng Javascript để xác thực khi nói đến các trình duyệt không tương thích HTML5 có nghi thức không? – Kamil

+0

@Kamil. Đúng vậy, nó không quá khó để làm điều đó bằng cách này. – gdoron

+0

@Kamil. Bạn có biết làm thế nào? – gdoron

-1

Làm cách nào tôi có thể đặt thuộc tính Độ dài tối đa cho điều khiển này?

Thuộc tính maxlength không hợp lệ đối với yếu tố <textarea>. Đó không phải là giới hạn ASP.NET MVC. Trong đặc tả HTML, thuộc tính này chỉ được định nghĩa cho các trường nhập văn bản đơn giản. Nếu bạn muốn giới hạn số lượng ký tự mà người dùng có thể nhập vào văn bản, bạn có thể sử dụng javascript.

+0

Đó là không đúng sự thật. maxlength là thuộc tính HTML5. – gdoron

+0

@gdoron. cho dao cạo ??? –

+0

@ bitoshi.n. Dao cạo? nó chỉ là html, dao cạo là một công cụ giúp bạn tạo HTML. – gdoron

0
<p>Customer Number: @Html.TextBox("SearchString1",null, new {maxlength = 6}) 
<input type="submit" value="Filter" /></p> 

Trên đây là một ví dụ mà làm việc cho tôi để hạn chế các ký tự cho phép tối đa được nhập vào. Các mẹo hiển thị mà bạn có thể thực hiện khi sử dụng môi trường .Net cực kỳ hữu ích. (* lưu ý, điều này không thể thay đổi kích thước của hộp văn bản)

"SearchString1" = Tên chuỗi ----- null = Giá trị đối tượng ------ new {maxlength = 6} = object htmlAttributes

+0

điều này làm gì vượt quá câu trả lời đã được chấp nhận? – dove

1

Bạn cũng có thể giới hạn chiều dài của hộp, như thế này:

<textarea id="EventNature1" maxlength="10"></textarea> 

     OR 
@Html.TexareaFor(m=>m.Name,new{@maxlength="10"}) 
2

này cũng làm việc cho các TextAreaFor helper với nhiều hơn một loại vô danh trong new

Khẳng định để làm việc tốt trong Visual Studio 2015 với MVC 5

@Html.TextAreaFor(model => model.Comments, 5, 500, new {maxlength=4000, @class = "form-control" }) 
Các vấn đề liên quan