2011-07-19 2 views
7

Я работаю над мобильным сайтом, который НЕ является родным приложением для iPhone, а скорее простым сайтом m.somedomain.com, который разработан в C# asp.net.Iphone Development - Как отобразить цифровую клавиатуру?

Цель: При нажатии на одно из текстовых полей, как мне отображать только цифровую клавиатуру?

Примечания: Сайт не в HTML5 и не является частью WebView внутри родного приложения, а автономный регулярного сайт

Моего текстовым полем является регулярным asp.net текстового поля:

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

Связанный, хотя возможно и устаревший: [iPhone UIWebview: как заставить цифровую клавиатуру? Возможно ли это?] (Http://stackoverflow.com/questions/773843/iphone-uiwebview-how-to-force-a-numeric-keyboard-is-it-possible) – PengOne

ответ

13

EDIT: Я нашел here, что вы можете использовать

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

сказать мобильное сафари, чтобы установить цифровую клавиатуру по умолчанию, без необходимости указания телефонной клавиатуры.

EDIT 2 (из комментариев ниже): Вы также можете использовать JavaScript, чтобы заставить цифровой вход, как так:

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

+2

«\ d *» также возможно в качестве альтернативы. – macbirdie

+0

Спасибо! Это работает отлично, хотя я вижу, что знак ABC на клавиатуре снова переключается на Alpha, есть ли способ его отключить или удалить, чтобы у пользователя не было выбора, кроме как вводить только числовые значения? –

+0

Лучший способ, которым я могу это сделать, - использовать javascript - try '' Это все еще возможно переопределить если у пользователя отключен javascript, но сложнее случайно поставить альфа-символы. Я нашел это решение [здесь] (http://www.phpbuilder.com/board/showthread.php?t=10281032). – mopsled

4

Если вы используете type = "tel" вместо type = "text", это вызовет цифровую клавиатуру.

+0

Я прочитал, что эта функциональность была удалена в предыдущая версия IOS? –

+0

Они доступны _since_ iOS 3.1. Это, конечно, в [docs] (http://developer.apple.com/library/ios/#documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html). – macbirdie

+0

Извините, но это не работает в текущем IOS, я просто попробовал ... –

0

Для Salesforce (не HTML ввод типа = 'число'), ниже Явы -script должен сделать iPad, цифровую клавиатуру iPhone по умолчанию. (Это решение должно работать и для управления 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>