这对我来说很奇怪,但是在Webkit浏览器(Chrome/Safari,而不是 Firefox)上,如果我在一个数字字符串中包含一个空格,<input type=number>那么该value输入是空的.
看到这个JSFiddle:http://jsfiddle.net/timrpeterson/CZZEX/5/
这是代码:
<input id='withOutspace' type='number' value='123'>
<input id='with_space' type='number' value='123 123'>
<button>click</button>
$('button').click(function(){
alert("withOut:"+$('#withOutspace').val()+" |||| with:"+$('#with_space').val());
});
Run Code Online (Sandbox Code Playgroud)
如果你去这个JSFiddle,你会注意到with_space输入是空的.但是如果你把它放在一个有空格或任何非数字字符的数字中,警报会说输入是空的.
显然,这对于使用信用卡号等进行表单验证来说是一场灾难.所以有人对此有所攻击吗?
最新的MacOS Safari和iOS5中的Safari会有一些额外的验证,如果文本字段不是电话号码,则会导致问题.
案例:输入type ="numeric"属性的文本字段.
问题:1)号码被格式化为电话号码.例如,如果我键入'012345678',它将被格式化为'012 345 678'
2)正在删除前导零.例如'01234567'被格式化为'1234567'
我可以在我的文本字段中删除type ="numeric"属性,可能问题会消失,但我真的想在这个文本字段中使用数字小键盘而不是iPhone上的普通键盘.
任何想法如何解决这一问题?
非常感谢
我对html5移动文本框有以下问题.
如果输入是,有任何选项可以打开ios和android平台的数字键盘type="text".
我面临的问题是,如果文本框是 type="number",无法在文本框中动态追加$,%符号(在android或ios浏览器中重现这个打开的html页面)
是否有任何选项在文本框中包含$,%符号,如果type必须是type ="number",则该值不会出现在safari,chrome和android浏览器中.
样品:
http://jsfiddle.net/bharathid/bFk9c/
在firefox中打开上面的URL它运行正常,但是在chrome值中打开时消失了.
注意:
在我的情况下,不喜欢在单独的跨度中使用$,%符号.
参考:
html5 ×2
javascript ×2
safari ×2
validation ×2
forms ×1
input ×1
ios5 ×1
textbox ×1
textfield ×1