2009-03-18 31 views
6

Ai đó có thể cho tôi biết một số ví dụ về hạn chế đầu vào của người dùng (trên thẻ đầu vào) trong Javascript không?giới hạn đầu vào của người dùng bằng cách sử dụng javascript

Cái gì đó khi chúng ta thiết lập các đầu vào (type = "text") để chỉ chấp nhận số, vì vậy nó sẽ bỏ qua bất kỳ đầu vào khác trừ số ...

Tôi nghĩ đó là tiện dụng cho đầu vào số (ví dụ như zip, thẻ tín dụng, tiền bạc, giá trị, điểm số, ngày vv ...), và nếu bạn có thể vui lòng chỉ cho tôi làm thế nào để tạo đầu vào với mô hình, một cái gì đó như:

 
Please Input Date: 
|-----------------| 
| / / | 
|-----------------| 

PS: tôi nghe WebForms 2.0 sẽ hỗ trợ điều này trong tương lai ... (Trình duyệt tuân thủ Acid 3?)

input type = "date"
loại input = "thời gian"
input type = "number"
input type = "tiền"

Nhưng nó chỉ tin tức từ tương lai: D

Trả lời

8

Điều này có thể giúp bạn.

http://www.w3schools.com/jsref/event_onkeydown.asp

<html> 
<body> 

<script type="text/javascript"> 
function noNumbers(e) 
{ 
var keynum; 
var keychar; 
var numcheck; 

if(window.event) // IE 
{ 
keynum = e.keyCode; 
} 
else if(e.which) // Netscape/Firefox/Opera 
{ 
keynum = e.which; 
} 
keychar = String.fromCharCode(keynum); 
numcheck = /\d/; 
return !numcheck.test(keychar); 
} 
</script> 

<form> 
<input type="text" onkeydown="return noNumbers(event)" /> 
</form> 

</body> 
</html> 
+0

Có, hoạt động để lọc ký tự đơn giản ... nhưng về các định dạng chính thức như ngày ("mm/dd/yy"). Bạn không thể trả về false nếu nó không phải là định dạng thích hợp nếu không bạn sẽ không bao giờ có thể nhập các chữ số đầu tiên. –

+1

Không đúng, nhưng nó đưa ra một ý tưởng nhất định về cách nó có thể được thực hiện. Fx. bạn sẽ chỉ có thể gõ 0 và 1 trong charecter đầu tiên của chuỗi ngày tháng. Nếu người dùng nhập một số ở trên, số đó sẽ không được đăng ký. Nhưng có mã cụ thể này không làm toàn bộ ma thuật. –

+0

vâng, tôi chỉ nhận xét cho sự rõ ràng;) –

3

Bạn có thể sử dụng các libs cụ thể như jQuery Validate (hoặc bất kỳ khung công tác JS nào của bạn cung cấp) khi gửi biểu mẫu. Giải pháp khác là kiểm soát giá trị trên các sự kiện nhòe keyUp & nhưng có thể trở nên khá lộn xộn để quyết định phải làm gì với mục nhập không đúng định dạng (đặc biệt khi định dạng phức tạp một chút - nghĩa là không chỉ các ký tự không mong muốn). Vì vậy, tất cả trong tất cả, tôi muốn khuyên bạn nên kiểm soát phía khách hàng về trình.

+0

tôi đã có phương thức xác thực gửi biểu mẫu: D – Dels

5

Câu hỏi này có đã là một câu trả lời được chấp nhận, nhưng tôi nghĩ rằng có một giải pháp tốt hơn cho việc này. Bạn không cần phải thực hiện điều đó cho mình trên keydown vv, có thư viện cho điều đó. Họ gọi kỹ thuật bạn mô tả "mặt nạ đầu vào". Kiểm tra this jQuery plugin nó thực hiện chính xác những gì bạn muốn.

+1

Plugin jQuery này thật tuyệt vời. – Matthew

+0

Tôi thích plugin đó nhưng sự cố vẫn còn với nhiều thiết bị Android trên cả trình duyệt gốc và chrome khi có quá nhiều vấn đề. Đối với hầu hết các phần, khi nói đến Android, tôi thường loại bỏ hoàn toàn mặt nạ. –

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