我正在开发一个移动网站,它不是原生的iPhone应用程序,而是一个简单的在c# asp.net中开发的m.somedomain.com网站。
目标: 点击文本框时,如何仅显示数字键盘?
注意: 该网站不是HTML5,并且不是原生应用程序内的Webview的一部分,而是一个独立的常规网站。
我的文本框是一个常规的asp.net文本框:
<asp:TextBox runat="server" CssClass="reference_input" Text="1234567" />
我正在开发一个移动网站,它不是原生的iPhone应用程序,而是一个简单的在c# asp.net中开发的m.somedomain.com网站。
目标: 点击文本框时,如何仅显示数字键盘?
注意: 该网站不是HTML5,并且不是原生应用程序内的Webview的一部分,而是一个独立的常规网站。
我的文本框是一个常规的asp.net文本框:
<asp:TextBox runat="server" CssClass="reference_input" Text="1234567" />
编辑: 我在这里找到了一个方法,你可以使用:
<input type="text" pattern="[0-9]*" />
来告诉Mobile Safari将数字键盘设置为默认,而不需要指定电话键盘。
编辑2 (来自下面的评论): 你还可以使用JavaScript强制进行数字输入:
<input type="text" pattern="[0-9]*" onKeypress="if(event.keyCode < 48 || event.keyCode > 57){return false;}" />
<input type="text" pattern="[0-9]*" onKeypress="if(event.keyCode < 48 || event.keyCode > 57){return false;}" />
- mopsled<input type="number">
能行吗?这应该在 Android 2.2 及以上版本中支持。 - mopsled对于Salesforce(不是HTML输入类型为“number”的情况),以下JavaScript代码应该使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>