html5 输入密码时怎么改键盘样式为数字键盘

html-css014

html5 输入密码时怎么改键盘样式为数字键盘,第1张

function validateDigitsOnly(evt) {

var e = evt || window.event,

key = e.keyCode || e.which

if (

// Backspace, Tab, Enter, Esc, Delete

key == 8 || key == 9 || key == 13 || key == 27 || key == 46 ||

// Ctrl + A

(key == 65 &&event.ctrlKey === true) ||

// Home, End, 四个方向键

key >= 35 &&key <= 40) {

return

}

if (e.shiftKey || e.altKey || e.ctrlKey) {

return false

}

var el = e.target || e.srcElement,

// 最大数字长度

nl = el.getAttribute("data-numbers") || 15,

// 最大小数长度

dl = el.getAttribute("data-decimals") || 2,

val = el.value,

// "." 位置

dotIndex = val.indexOf("."),

rng = caret.call(el),

// 光标在"."左边

rLeft = rng.end <= dotIndex,

// 光标在"."右边

rRight = rng.begin >dotIndex

if (

// 数字

key >= 48 &&key <= 57 ||

// 数字键盘输入的数字

在HTML5中,为input元素新增了以下一些type属性值:

color:用于指定颜色的控件。

date:用于输入日期的控件(年,月,日,不包括时间)。

month:用于输入年月的控件,不带时区。

week:用于输入一个由星期-年组成的日期,日期不包括时区

time:用于输入不含时区的时间控件。

datetime:基于UTC时区的日期时间输入控件(时,分,秒及几分之一秒)。

datetime-local:用于输入日期时间控件,不包含时区。

email:用于应该包含 e-mail 地址的输入域。在提交表单时,会自动验证 email 域的值。

number: 用于应该包含数值的输入域。只能输入数字

range:用于应该包含一定范围内数字值的输入域。range 类型显示为滑动条。

search:用于输入搜索字符串的单行文本字段。换行会被从输入的值中自动移除。

tel:用于输入电话号码的控件。在移动端输入会显示数字键盘,PC端无效果

url:用于编辑URL的字段。

移动开发不同手机弹出数字键盘问题 最近在做手机页面时,遇到数字输入的键盘的问题,之前的做法只是一刀切的使用 type="tel",不过一直觉得九宫格的电话号码键盘上的英文字母太碍事了。于是想要尝试其它的实现方案,最终的结论却令人沮丧。不过也趁机详细了解了下pattern这个属性。 type="tel" 和 type="number" 的区别

这里还是先那么先交代一下最初遇到的问题。其实无论是tel还是number都不是完美的:

type="tel"