我需要自动清理用户输入文本输入 - 只允许数字,第一个字符除外,可以是数字或连字符。
因此,例如,如果用户键入138a29,它将自动更新为13829。
我正在使用onKeyPress事件来检查keyCode只允许数字,但事实证明,在某些浏览器中,如果不打破箭头键,退格键等,那么真正只允许数字有点困难。现在有一个新的要求是允许连字符( - )作为可选的第一个字符,但连字符在字符串中的任何其他位置都无效。
我有Prototype库用于我的特定项目,但没有jQuery。
答案 0 :(得分:1)
最简单的方法是避免使用keyCode并在keyup上使用文本框的值。像这样......
Event.observe('myInput', 'keyup', function(){
var value = this.value, first;
if(value.length == 0)
return;
first = value.charAt(0);
value = value.replace(/[^0-9]/g,'');
if(first == '-')
value = first + value;
this.value = value;
return true;
});
答案 1 :(得分:0)
试试这个
<script type="text/javascript">
function whatKey(e) {
var thetext = document.getElementById('tt'); // Current value
var theKey = String.fromCharCode(e.keyCode); // key entered
var combval = thetext.value + theKey; // Result would be this
return (!isNaN(combval) || combval=='-'); // if result OK, accept key
}
</script>