在Android浏览器中不允许字母或其他符号,而不是数字(0-9)或小数

Not allowing alphabets or other symbols than numerics (0-9) or decimal in Android browser

本文关键字:数字 小数 符号 浏览器 Android 不允许 其他      更新时间:2023-09-26

以下代码为我工作:firefox, IE 8, chrome, Safariiphone

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的自动文本预测行为导致了问题。