Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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忽略数字字段上的novalidate?_Javascript_Html - Fatal编程技术网

Javascript忽略数字字段上的novalidate?

Javascript忽略数字字段上的novalidate?,javascript,html,Javascript,Html,至少在IE11和Firefox中,JavaScript似乎在设置数字字段的值时忽略了表单“novalidate”选项。我希望使用数字字段,因为我希望在移动设备上查看我的站点时,数字键盘会显示在键盘的位置,但当输入值时,我希望能够将其格式化为(#####)#-####。在下面的示例中,由于“novalidate”选项,我可以在字段中键入任何我想要的内容,但JS不允许我插入我想要的内容: var txtNum=document.getElementById(“txtNum”); 函数ftnTest

至少在IE11和Firefox中,JavaScript似乎在设置数字字段的值时忽略了表单“novalidate”选项。我希望使用数字字段,因为我希望在移动设备上查看我的站点时,数字键盘会显示在键盘的位置,但当输入值时,我希望能够将其格式化为(#####)#-####。在下面的示例中,由于“novalidate”选项,我可以在字段中键入任何我想要的内容,但JS不允许我插入我想要的内容:

var txtNum=document.getElementById(“txtNum”);
函数ftnTestA(){
var num=“1234567890”;
txtNum.value=num;
}
函数ftnTestB(){
var num=“(123)456-7890”;
txtNum.value=num;
}
函数ftnTestC(){
var num=“123-456-7890”;
txtNum.value=num;
}



1234567890(工程) (123)456-7890(无IE,无FF) 123-456-7890(在IE中工作,无FF)
不要使用
type=“number”
输入字段,而是使用
type=“tel”
字段,因为这正是您要做的。数字输入字段仅为数字设计。

不要使用
type=“Number”
输入字段,而要使用
type=“tel”
字段,因为这正是您要做的。数字输入字段仅用于数字。

在最新版本的chrome中,它甚至不允许您在该字段中键入括号。我认为这里有一个更根本的问题
novalidate
没有做您最初认为它在做的事情。
novalidate
在这里不起作用。它仅在您使用时关闭验证。输入类型为“number”的字段将不接受非数字字符。您需要将您的输入类型更改为其他类型,尽管我不知道正确的类型;浏览器支持(或不支持)HTML5表单验证和新的HTML5输入类型。在您的情况下,浏览器不会忽略“novalidate”-无论表单/字段验证如何,都是输入类型
限制了可以输入的内容。只能在该字段中输入一组受限字符。。。尝试使用
E
,这是允许的,因此您可以输入带有科学符号的数字,如
3.02E+7
9.707E-12
,无“novalidate”,我无法手动在字段中键入括号或任何其他非数字。使用novalidate,我可以手动在字段中键入任何我想要的内容,但仍然只能在移动浏览器上获得数字键盘。这是预期的行为。然而,尽管我可以手动键入我想要的任何内容,但使用JavaScript填充字段仍然会遵循这些限制。所以novalidate确实有效,并且可以在数字字段中输入非数字,至少在FF和IE中是这样;在最新版本的chrome中,它甚至不允许您在该字段中键入括号。我认为这里有一个更根本的问题
novalidate
没有做您最初认为它在做的事情。
novalidate
在这里不起作用。它仅在您使用时关闭验证。输入类型为“number”的字段将不接受非数字字符。您需要将您的输入类型更改为其他类型,尽管我不知道正确的类型;浏览器支持(或不支持)HTML5表单验证和新的HTML5输入类型。在您的情况下,浏览器不会忽略“novalidate”-无论表单/字段验证如何,都是输入类型
限制了可以输入的内容。只能在该字段中输入一组受限字符。。。尝试使用
E
,这是允许的,因此您可以输入带有科学符号的数字,如
3.02E+7
9.707E-12
,无“novalidate”,我无法手动在字段中键入括号或任何其他非数字。使用novalidate,我可以手动在字段中键入任何我想要的内容,但仍然只能在移动浏览器上获得数字键盘。这是预期的行为。然而,尽管我可以手动键入我想要的任何内容,但使用JavaScript填充字段仍然会遵循这些限制。所以novalidate确实有效,并且可以在数字字段中输入非数字,至少在FF和IE中是这样;JavaScript没有考虑到这一点。谢谢!这正是我需要的。谢谢!这正是我需要的。