Kar*_*lik 5 html javascript regex web-deployment
我有一个数字类型输入,我想防止别人输入数字以外的任何东西。我发现的示例适用于输入类型文本字段,但不适用于数字字段。
效果很好 :)
<input type="text" onkeyup="this.value=this.value.replace(/[^\d]/,'')">
Run Code Online (Sandbox Code Playgroud)
效果不好:(
<input type="number" onkeyup="this.value=this.value.replace(/[^\d]/,'')">
Run Code Online (Sandbox Code Playgroud)
在JSFiddle上尝试一下
请帮忙...
我刚刚使用 JSFiddle 做了一些简单的测试,如果元素上有无效输入,<input type="number" />则该this.value属性将返回空白。
使用 Chrome 时,以下行显示了此结果:
<input type="number" oninput="alert(this.value)">
Run Code Online (Sandbox Code Playgroud)
事实上,出现这种情况的原因如下:
value 属性(如果已指定且不为空)必须具有有效浮点数的值。
值清理算法如下:如果元素的值不是有效的浮点数,则将其设置为空字符串。
这个问题现在引起了我的兴趣,我想出了一些解决方法。
<input type="number" oninput="updateNum(this)">
Run Code Online (Sandbox Code Playgroud)
function updateNum(e)
{
e.select();
e.value = getSelection().toString().replace(/[^\d]/g,'');
}
Run Code Online (Sandbox Code Playgroud)
如果选择在命令之间更改位置,则可能会出现错误。