所有主浏览器都⽀持type属性,但是,并⾮所有主流浏览器都⽀持所有不同的 input 类型。
以下 input 类型是 HTML5 中的新类型:color、date、datetime、datetime-local、month、week、time、email、number、range、search、tel 和 url。
这⾥只说 type=number 类型。
(来⾃菜鸟)【Internet Explorer 9 及更早 IE 版本不⽀持 type="number";很遗憾的是⽕狐浏览器并不⽀持type=number 】
在使⽤的过程中遇到的问题,
1.Android版app。
集成的内核是⽀持type=number类型。调出的软键盘是数字键盘。【符合预期】
问题:1.字母e由于是计数的⼀种,是可以输⼊的;
2.字母e通过value取值时是取不到的;[是数学但不是数字,有点 ]
3.当输⼊字母时,通过value取值返回的是“”空字符串,输⼊框是字母e.
相对来说,兼容性还是很好的。
2.IOS版app
集成的webkit内核,⽐较奇怪的是,只调出了数字键盘,和原⽣调出的数字键盘并不是同⼀个。======请⼤⽜ 指点啊,评论
问题:1.任何字符都可以输⼊,type=number在输⼊阶段没有做任何校验;
2.通过value取值时返回的是。。。。。,这个我需要确认⼀下。
离预期差的不是⼀站地的距离。
⼀时没有想出好的解决⽅案,【1.点击input框时调取数字键盘;2.不可以输⼊字母;3.保留两个⼩数点】
<input type="number" id="oInput" placeholder="请输⼊数字">
<input type="button" value="提交" id="oBtn">
var oInput = document.querySelector("oInput");
var oBtn = document.querySelector("oBtn");
var maxNum = 2000;
var minNum = 5;
var oVal;
oInput.addEventListener('blur', function() {
this.value = this.value>=0?parseFloat(this.value).toFixed(2):parseFloat(this.value);
oVal = this.value; //处理后得到的结果:数值和NaN
}, false);
//提交
if(!oVal && oVal!="0"){
alert("请输⼊数字");
}else if(oVal/1<minNum/1){ //把他们转化为 Number类型
alert("⼩于"+minNum);
}else if(oVal/1 <=maxNum/1){input标签placeholder属性
alert("你输⼊的是"+oVal);
location.href="a.php?val="+oVal;
}else{
alert("不得超过"+maxNum);
oInput.value = maxNum;
}
}
//这样就实现了在type=number时: 1.取得数值的⽬的 2.取得的值和输⼊框内显⽰的统⼀。
这⾥⾯要注意⼏点:1.取回来的值都是字符串类型,⽐较前先转化为Number类型;【"100" 与 "2" 谁⼤, 不好说】
2.if判断,相互之间不能有冲突或者重合【第⼀点击按钮正常,第⼆次点击按钮没有反应】
3.当输⼊框和按钮很近时,直接点击提交按钮软键盘不⾃动收起;
1.可以采⽤失去焦点blur事件;
2.blur事件触发,⼀定在确认跳转之后;
3.防⽌点击取消跳转,再次点击按钮⽆反应。
求⼤神分享只输⼊数字的做法和代码~~~
另⼀个不明⽩的地⽅是,appIOS版本对type=number⽀持的不是那么好。。。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论