2011-07-19 12 views
7

मैं एक मोबाइल वेबसाइट पर काम कर रहा हूं जो मूल आईफोन ऐप नहीं बल्कि एक साधारण m.somedomain.com वेबसाइट है जिसे सी # एएसपीनेट में विकसित किया गया है।आईफोन विकास - एक संख्यात्मक कीबोर्ड कैसे प्रदर्शित करें?

उद्देश्य: कैसे मैं केवल संख्यात्मक कुंजीपटल प्रदर्शित कर टेक्स्ट बॉक्स में से एक पर क्लिक करने पर?

नोट: वेबसाइट एचटीएमएल 5 में नहीं है और एक घरेलू एप्लिकेशन के अंदर वेब दृश्य का हिस्सा नहीं है बल्कि एक स्टैंडअलोन नियमित वेबसाइट नहीं है

मेरे पाठ बॉक्स एक नियमित रूप से 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

संपादित: मैं here पाया है कि आप उपयोग कर सकते हैं

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

टेलीफोन कुंजीपटल निर्दिष्ट करने के लिए की जरूरत के बिना, डिफ़ॉल्ट के रूप में संख्यात्मक कुंजीपटल स्थापित करने के लिए मोबाइल सफारी बताने के लिए।

संपादित 2 (नीचे टिप्पणी से): तुम भी इतनी के रूप में संख्यात्मक इनपुट के लिए मजबूर करने जावास्क्रिप्ट का उपयोग कर सकते हैं:

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

+2

"\ d *" एक विकल्प के रूप में भी संभव है। – macbirdie

+0

धन्यवाद! यह पूरी तरह से काम करता है, हालांकि मुझे फिर से अल्फा पर स्विच करने के लिए कीबोर्ड पर एबीसी साइन दिखाई देता है, क्या उसमें अक्षम या निकालने का कोई तरीका है ताकि उपयोगकर्ता के पास संख्यात्मक दर्ज करने के अलावा कोई विकल्प न हो? "[0-9] *" onKeypress = "अगर (! IsNS4) {अगर (घटना '

+0

सबसे अच्छा तरीका है मैं यह करने के बारे में सोच सकते जावास्क्रिप्ट का उपयोग करने के लिए है। कीकोड <45 || event.keyCode> 57) event.returnValue = false;} else {अगर (event.which <45 || event.which> 57) returnfalse;} "/>' यह अभी भी संभवतः अधिरोहित जा सकता है यदि उपयोगकर्ता के पास जावास्क्रिप्ट अक्षम है, लेकिन गलती से अल्फा वर्णों को रखना मुश्किल है। मैंने पाया कि समाधान [यहां] (http://www.phpbuilder.com/board/showthread.php?t=10281032)। – mopsled

4

यदि आप टाइप = "टेक्स्ट" के बजाय टाइप = "टेल" का उपयोग करते हैं तो यह एक संख्यात्मक कीबोर्ड लाएगा।

+0

मैंने पढ़ा है कि यह कार्यक्षमता हटा दी गई है आईओएस का पिछले संस्करण? –

+0

वे _since_ आईओएस 3.1 उपलब्ध हैं। यह [डॉक्स] में है (http://developer.apple.com/library/ios/#documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html) बेशक। – macbirdie

+0

क्षमा करें, लेकिन यह वर्तमान आईओएस पर काम नहीं करता है, मैंने अभी कोशिश की है ... –

0

Salesforce (नहीं HTML इनपुट प्रकार = 'संख्या') के लिए, जावा नीचे -स्क्रिप्ट को आईपैड बनाना चाहिए, आईफोन न्यूमेरिक कीपैड डिफ़ॉल्ट रूप से दिखाई देगी। (यह समाधान 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> 
संबंधित मुद्दे