2011-07-19 40 views
7

Tôi đang làm việc trên trang web trên thiết bị di động KHÔNG phải là ứng dụng iPhone gốc mà là trang web m.somedomain.com đơn giản được phát triển trong C# asp.net.Phát triển Iphone - Cách hiển thị bàn phím số?

Mục tiêu: Khi nhấp vào một trong các hộp văn bản, làm thế nào để tôi chỉ hiển thị bàn phím số?

Lưu ý: Trang web này là KHÔNG trong HTML5 và không phải là một phần của một webview bên trong một ứng dụng Native mà là một trang web thường xuyên độc

textbox của tôi là một hộp văn bản asp.net thường xuyên:

<asp:TextBox runat="server" CssClass="reference_input" Text="1234567" /> 
+1

Có liên quan, mặc dù có thể đã lỗi thời: [iPhone UIWebview: Làm thế nào để ép buộc bàn phím số? Có thể không?] (Http://stackoverflow.com/questions/773843/iphone-uiwebview-how-to-force-a-numeric-keyboard-is-it-possible) – PengOne

Trả lời

13

EDIT: Tôi tìm thấy here mà bạn có thể sử dụng

<input type="text" pattern="[0-9]*" />

nói với Safari di động để thiết lập bàn phím số như mặc định, mà không cần phải xác định bàn phím điện thoại.

EDIT 2 (từ bình luận dưới đây): Bạn cũng có thể sử dụng javascript để buộc nhập số như vậy:

<input type="text" pattern="[0-9]*" onKeypress="if(event.keyCode < 48 || event.keyCode > 57){return false;}" />

+2

"\ d *" cũng có thể thay thế. – macbirdie

+0

Cảm ơn! Điều này làm việc hoàn hảo, mặc dù tôi thấy dấu hiệu ABC trên bàn phím để chuyển sang Alpha một lần nữa, có cách nào để vô hiệu hóa hoặc loại bỏ điều đó quá để người dùng không có tùy chọn nhưng để nhập số chỉ? –

+0

Cách tốt nhất tôi có thể nghĩ là làm điều này là sử dụng javascript - hãy thử '' Điều này vẫn có thể bị ghi đè nếu người dùng đã tắt javascript, nhưng rất khó để vô tình đặt các ký tự alpha ở đó. Tôi thấy rằng giải pháp [ở đây] (http://www.phpbuilder.com/board/showthread.php?t=10281032). – mopsled

4

Nếu bạn sử dụng loại = "tel" thay vì gõ = "văn bản" nó sẽ mang đến một bàn phím số.

+0

Tôi đọc rằng chức năng này đã bị xóa phiên bản trước của IOS? –

+0

Chúng có sẵn _since_ iOS 3.1. Đó là trong [docs] (http://developer.apple.com/library/ios/#documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html) tất nhiên. – macbirdie

+0

Xin lỗi nhưng điều này không hoạt động trên IOS hiện tại, tôi vừa thử nó ... –

0

Đối với Salesforce (không HTML input type = 'số'), dưới java -sẽ làm cho bàn phím số iPad, iPhone xuất hiện mặc định. (Giải pháp này cũng có tác dụng đối với việc kiểm soát asp.net)

<apex:page standardController="Account" > 
    <head> 
    <script type="text/javascript"> 
     function addLoadEvent(func) 
     { 
     var oldonload = window.onload; 
     if (typeof window.onload != 'function') 
     { 
     window.onload = func; 
     } 
     else 
     { 
     window.onload = function() 
     { 
      if (oldonload) 
      { 
      oldonload(); 
      } 
      func(); 
     } 
     } 
     }  

     addLoadEvent(function() 
     { 
     try{ 
      var ctl = document.getElementById('{!$Component.frm.txtNumeric}'); 
      type = document.createAttribute("type"); 
      type.nodeValue = "number"; 
      ctl.setAttributeNode(type); 
     }catch(err) 
     { 
     alert(err); 
     } 
     }); 
    </script> 
    </head> 

    <body> 
     <apex:form id="frm" >  
     This is a numeric input <apex:inputfield id="txtNumeric" value="{!account.name}" style="width:200px;" /> 
     </apex:form> 
    </body> 

</apex:page> 
Các vấn đề liên quan