是否可以创建一个输入字段,将默认输入字符集设置为移动电话上的数字(所以数字键盘上升)?
例如,可以更轻松地将电话号码输入HTML表单。
答案 0 :(得分:34)
要更轻松地输入数字,请使用<input type="number">
。要更轻松地输入电话号码,请使用<input type="tel">
。并非所有手机都支持它们,但iPhone至少会默认为您提供数字键盘而不是普通键盘。有关详细信息,请参阅the spec和Dive Into HTML5。
答案 1 :(得分:5)
可以限制“手机”的输入 手机表单条目使用
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
这里的输入可以使用format =“* N”
进行限制答案 2 :(得分:4)
您可以使用<input type='tel'>
。这是一个新的HTML5功能。较旧的浏览器只会默认为文本输入字段。
答案 3 :(得分:2)
因此,您可以使用type="tel"
或type="numbers"
。
不同之处在于,人们会尝试调出手机拨号键盘,而其他只需切换到手机键盘的数字输入。
答案 4 :(得分:1)
以下是Javascript的示例。这将只允许来自键盘顶部的小键盘/数字和格式化器(移位/退格/等)的数字。您还可以考虑为setTimeout()
事件添加onchange
,以及几秒钟超时,以检查是否有人将非数字粘贴到字段中以及服务器端验证。
答案 5 :(得分:1)
请使用JavaScript语言{$ 3}}查看我的网页上文本输入元素值的跨浏览器过滤器项目。代码示例:
<!doctype html>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Input Key Filter Test</title>
<meta name="author" content="Andrej Hristoliubov anhr@mail.ru">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<!-- For compatibility of IE browser with audio element in the beep() function.
https://www.modern.ie/en-us/performance/how-to-use-x-ua-compatible -->
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<link rel="stylesheet" href="https://rawgit.com/anhr/InputKeyFilter/master/InputKeyFilter.css" type="text/css">
<script type="text/javascript" src="https://rawgit.com/anhr/InputKeyFilter/master/Common.js"></script>
<script type="text/javascript" src="https://rawgit.com/anhr/InputKeyFilter/master/InputKeyFilter.js"></script>
</head>
<body>
<h1>Phone number</h1>
Please type a phone number in the +**(***)***-**-** format. Example: +1(23)456-78-90
<br/>
<input id="PhoneNumber" value="+()--">
<script>
function getArrayPhoneNumber(value){
if (typeof value == 'undefined')
value = document.getElementById("PhoneNumber").value;
return value.match(/^(\+?\d*)\((\d*)\)(\d*)-?(\d*)-?(\d*)$/);
}
function getPhoneNumber(){
var arrayPhoneNumber = getArrayPhoneNumber();
if(!arrayPhoneNumber)
return "";
var phoneNumber = arrayPhoneNumber[1] + arrayPhoneNumber[2] + arrayPhoneNumber[3] + arrayPhoneNumber[4] + arrayPhoneNumber[5];
return phoneNumber;
}
inputKeyFilter.Create("PhoneNumber", function(event){//onChange event
inputKeyFilter.RemoveMyTooltip();
var arrayPhoneNumber = getArrayPhoneNumber();
if(!arrayPhoneNumber || (arrayPhoneNumber.length != 6)){
document.getElementById("NewPhoneNumber").innerHTML = "Incorrect format of the phone number";
return;
}
var elementNewPhoneNumber = document.getElementById("NewPhoneNumber");
var phoneNumber = getPhoneNumber();
if(inputKeyFilter.isNaN(phoneNumber, this)){
elementNewPhoneNumber.innerHTML = "";
return;
}
elementNewPhoneNumber.innerHTML = phoneNumber;
}
, function(elementInput, value){//customFilter
var arrayPhoneNumber = getArrayPhoneNumber(value);
if(arrayPhoneNumber == null){
inputKeyFilter.TextAdd(isRussian() ?
"Недопустимый формат телефонного номера. Например: +1(234)56-78-90"
: "Incorrect format of the phone number. Example: +1(234)56-78-90"
, elementInput);
if(elementInput.value == "")
elementInput.value = elementInput.defaultValue;
return false;
}
return true;
}
//onblur event. Use this function if you want set focus to the input element again if input value is NaN. (empty or invalid)
, function(event){ inputKeyFilter.isNaN(parseInt(getPhoneNumber()), this); }
);
</script>
New phone number: <span id="NewPhoneNumber"></span>
</body>
</html>
另见我的页面Input Key Filter
答案 6 :(得分:0)
我测试&#34;您可以使用type="tel"
或type="numbers"
。&#34;
在iPhone type="tel"
上只显示数字键盘(如手机),而type="numbers"
会调出数字键盘切换到数字和符号,因此两者都有效,只取决于您的应用程序。对我来说,我只需要数字,所以我使用type="tel"
以方便使用,效果很好!