以下代码为我工作:firefox
, IE 8
, chrome
, Safari
和iphone
。
function dotplaced(myfield){
if(myfield.indexOf(".")===-1){
return false;
}
return true;
}
function NumbersOnly(myfield, e) {
var key;
var keychar;
if (window.event) {
key = window.event.keyCode;
}
else if (e) {
key = e.which;
}
else {
return true;
}
keychar = String.fromCharCode(key);
// control keys
if ((key == null) || (key == 0) || (key == 8) ||
(key == 9) || (key == 13) || (key == 27)) {
return true;
}
// numbers
else if ((("0123456789").indexOf(keychar) > -1)) {
return true;
}
// decimal point jump
else if (!dotplaced(myfield.value) && (keychar == ".")) {
//myfield.form.elements[dec].focus();
return true;
}
else {
return false;
}
}
当Android 2.1给出一些错误。如果我在文本框中没有任何东西,android也允许我输入字母,如果我输入一些默认值,比如7。然后,它是限制,直到我输入句号符号或我删除文本框的所有文本。有人对此有什么想法吗?
也许添加android:numeric="integer"
到xml是有帮助的?
当我做了更多的研究。然后我才知道是Android的自动文本预测行为导致了问题。