2013-04-25 28 views
7

Tôi có một textbox cho Tuổi:IE10 Validation lỗi với maxlength và giữ chỗ trên textbox

< input type = "text" id = tên "txtAge" = "txtAge" class = "text" placeholder = "Tuổi (tùy chọn) "maxlength =" 2 ">

Khi nhấp vào gửi, đầu vào này ngay lập tức có viền đỏ. Không có postback. Tôi giả sử IE10 tin rằng khách hàng đã thực sự nhập "Tuổi (tùy chọn)" lớn hơn maxlength của 2.

Có cách nào để khắc phục điều này mà không khiến người dùng thực hiện bất kỳ điều gì trong cài đặt của trình duyệt và không loại bỏ thuộc tính maxlength?

+2

Có vẻ như đó không phải là vấn đề. IE10 có đưa ra thông báo lỗi trên trường không? Bạn có thực hiện bất kỳ xác thực tùy chỉnh nào khi gửi không? BTW nó có thể tốt hơn nếu bạn sử dụng type = "number" cho độ tuổi. –

+0

IE 10 thêm đường viền màu đỏ 3px. Tôi không biết từ đâu. Tôi đã tìm kiếm toàn bộ giải pháp cho màu đỏ đậm 3px mà không có kết quả. Nút gửi không có bất kỳ javascript gắn liền với nó cả. Đó là vụ phải postback trong trường hợp cụ thể này. Khi sử dụng loại = số có thể khắc phục sự cố cụ thể này, tôi có các trường khác như chữ viết tắt ở giữa nơi trình giữ chỗ = "MI" và maxlength = "1" và nó hiển thị cùng đường viền màu đỏ. – sapataso

+0

Bạn có thể đăng bản trình diễn của sự cố vì tôi không thấy sự cố chỉ bằng cách sử dụng mã bạn đã cung cấp ở trên không? –

Trả lời

10

Bạn có thể sử dụng các thuộc tính novalidateformnovalidate. Xem this link để biết thêm thông tin.

Internet Explorer 10 và ứng dụng Windows Store sử dụng JavaScript thêm hỗ trợ mới cho Biểu mẫu HTML5, bao gồm các thuộc tính loại mới (trên phần tử đầu vào), thuộc tính mới cho yếu tố đầu vào và phần tử tiến trình. Hỗ trợ này cho phép nhà phát triển nhanh chóng và dễ dàng cung cấp cho người dùng lời nhắc, xác thực đầu vào và phản hồi với số lượng tập lệnh tối thiểu.

Nguồn: http://msdn.microsoft.com/en-us/library/ie/hh673544(v=vs.85).aspx

1

tôi phải đối mặt với cùng một vấn đề.

Trong trường hợp này, bạn nên thay đổi độ dài tối đa thành 10 để không gặp vấn đề gì với độ dài tối đa và đặt độ dài tối đa bạn muốn cho hộp văn bản của mình bằng javascript như sau.

function setMaxLength(obj, len) { 
return (obj.value.length < len); 
} 

và gọi chức năng này như sau

<input type="text" id="txtAge" name="txtAge" class="text" placeholder="Age (optional)" maxlength="10" onkeypress="return setMaxLength(this,2);"> 

này sẽ giải quyết vấn đề của bạn.

1

Tôi đã gặp vấn đề tương tự, trong trường hợp của tôi đó là trường GUID, đã bị ẩn vì tôi không cần hiển thị trên màn hình. Vì vậy, tôi đã hiển thị: none và maxlength = 0. Tuy nhiên, IE đã thực hiện xác thực, đăng lại không thành công và tôi không biết tại sao. Mất nửa ngày để tìm ra, giải pháp là đặt maxlength = 36.

+1

Cùng một vấn đề ở đây; cảm ơn bài đăng của bạn. Tôi chỉ mất một giờ vì một hộp văn bản ẩn được điền thông qua tập lệnh của khách hàng nhưng có độ dài tối đa quá nhỏ. Điều sux là IE 10 (và 11) sẽ chặn gửi biểu mẫu và hiển thị thông báo lỗi "đầu vào của bạn vượt quá X ký tự" (hoặc bất kỳ điều gì), nhưng thông báo lỗi bị ẩn vì phần tử bị ẩn, vì vậy người dùng không có cách nào biết chuyện gì đang xảy ra. Dường như một lỗi trong IE: nếu phần tử bị ẩn, hoặc không xác thực maxlength ở tất cả hoặc hiển thị dưới dạng cảnh báo/hộp thoại thay thế.Thực sự, họ chỉ nên xóa tính năng này ... đó là nhiệm vụ phía máy chủ – nothingisnecessary

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