Iphone Development - Как отобразить цифровую клавиатуру? - PullRequest
7 голосов
/ 20 июля 2011

Я работаю над мобильным сайтом, который НЕ является нативным приложением для iPhone, а скорее простым веб-сайтом m.somedomain.com, который разработан на c # asp.net.

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

Примечание. Веб-сайт НЕ в формате HTML5 и не является частью веб-просмотра внутри собственного приложения, а является автономным обычным веб-сайтом

Мое текстовое поле - обычное текстовое поле asp.net:

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

Ответы [ 3 ]

13 голосов
/ 20 июля 2011

РЕДАКТИРОВАТЬ : я нашел здесь , который вы можете использовать

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

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

РЕДАКТИРОВАТЬ 2 (из комментариев ниже): Вы также можете использовать javascript для принудительного ввода числовых данных следующим образом:

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

4 голосов
/ 20 июля 2011

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

0 голосов
/ 05 апреля 2012

Для Salesforce (не HTML input type = 'number'), ниже java-скрипт должен сделать 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>
...