无法在文本字段中提供输入为“点”

时间:2013-04-22 17:29:42

标签: javascript jquery html

我有用于验证文本字段编号的代码。

此代码工作正常,但唯一的问题是它不允许我输入.(点)。 我的文本域是金额,金额可以是222.234234,或222 那么我应该添加什么代码才能让用户输入具有以下scrits的句点

function ValidateNum(input,event)
    {
        var keyCode = event.which ? event.which : event.keyCode;
        if((parseInt(keyCode)>=48 && parseInt(keyCode)<=57) || parseInt(keyCode)==08 ||  parseInt(keyCode)==09 || parseInt(keyCode)==127 )  
        {
           return true;
        }
        return false;
    }

文本字段

<input type="text" name="from_amount" onkeypress="return ValidateNum(this,event)" id="from_amount" placeholder="    Type to convert" />`

所以请帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

.的密码为190 您可以在此处查看此列表 - &gt; http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

答案 1 :(得分:1)

为什么不验证整个字符串而不是验证每个输入的字符?

这样做:

//I am assuming that input is the text element
function validateNumber(input) {
    //newer browsers should have .trim(). Otherwise you can do something like:
    //   input.value.replace(/^\s+|\s+$/g, "");
    return /^\d+(\.\d+)?$/.test(input.value.trim()); 
}

当用户仅输入.字符时,您当前的验证功能是否会考虑?多个.个字符怎么样?价值123.1.43.31..2怎么样?看起来当前函数只验证输入的字符而不查看该字符的上下文(即它周围的内容)。

另外请注意,考虑使用jQuery或绑定到input元素而不是使用onkeypress属性。这种绑定方法或多或少已弃用,不推荐使用。此验证方法还可以防止可能令人困惑的按键事件。最好在填写后填写整个表单进行验证,或者将文本字段标记为无效,因为它们正在写入。

您还可以使用type而不是number的HTML5 text值来约束用户可以输入到该字段的内容。这样你甚至不需要做任何验证。