Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法将输入作为“输入”;点“;在文本字段中_Javascript_Jquery_Html - Fatal编程技术网

Javascript 无法将输入作为“输入”;点“;在文本字段中

Javascript 无法将输入作为“输入”;点“;在文本字段中,javascript,jquery,html,Javascript,Jquery,Html,我有这个验证文本字段号的代码 此代码工作正常,但唯一的问题是它不允许我输入(点)。 我的文本字段代表金额,金额可以是222.234234或222 那个么,我应该添加什么代码,以便用户能够用下面的纸条输入句点呢 function ValidateNum(input,event) { var keyCode = event.which ? event.which : event.keyCode; if((parseInt(keyCode)>=48 &am

我有这个验证文本字段号的代码

此代码工作正常,但唯一的问题是它不允许我输入
(点)。 我的文本字段代表金额,金额可以是222.234234或222 那个么,我应该添加什么代码,以便用户能够用下面的纸条输入句点呢

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;
    }
函数validateEnum(输入、事件)
{
var keyCode=event.which?event.which:event.keyCode;

如果((parseInt(keyCode)>=48&&parseInt(keyCode)
您可以在此处查看此列表->

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

这样做:

//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.3
,或
1..2
?看起来当前函数只验证输入的字符,而不查看上下文该字符的t(即,它周围的内容)

另一个注释,考虑使用jQuery或绑定到输入元素,而不是使用<代码> OnKePress < /Cord>属性。绑定方法或多或少是不推荐的,也不推荐。这种验证方法可以防止按键事件发生混淆。r他们已经填写了,或者在填写时将文本字段标记为无效


您还可以使用HTML5
类型
数值
而不是
文本
来限制用户可以在该字段中输入的内容。这样您甚至不必进行任何验证。

允许
键码
190。尽管您必须小心,但“Shift”键没有被按下,这将导致“>”如果您使用的是
jQuery
,则不需要规范化
事件
keyCode
。不要试图阻止按键事件-这只会导致错误的用户体验!相反,请验证输入值。这不包括是否按下了Shift键(这会导致不同的字符)你能给出
里面的完整脚本吗。
@我更新了我的问题。请给我完整的代码,我无法理解你的代码。我是新来的javascript@Ashutosh我已经更新了我的答案;它应该非常简单。没有必要在
事件中传递
@Ashutosh它将是sa我,除非你不会传递
事件
;只传递
这个
。但我不能强调为什么不推荐这种方法。我使用了这个
,但是你的代码不允许我按任何代码。为什么?
//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()); 
}