Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.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_Html_Vue.js - Fatal编程技术网

Javascript <;输入类型=";“数字”&燃气轮机;不阻止输入无效数字,但;元素.值“;不允许我纠正它们

Javascript <;输入类型=";“数字”&燃气轮机;不阻止输入无效数字,但;元素.值“;不允许我纠正它们,javascript,html,vue.js,Javascript,Html,Vue.js,从关于: 它们包括拒绝非数字条目的内置验证 这是否意味着“提交HTML表单时拒绝”? 我输入了“4e4--23”。HTML并没有拒绝它 因此,不能阻止非数值的输入。 我不在乎我是否能通过编程纠正用户的输入。 例如,用户输入的减号不在第一个位置-使用JavaScript,理论上我可以删除它 然而这里有一个不明显的JavaScript行为:当输入元素 具有“number”属性且值为无效数字,元素。值返回 空字符串。编程验证非常棘手:因为我们 如果字符串值为空,则验证程序将返回“输入不得为空。请输入

从关于

它们包括拒绝非数字条目的内置验证

这是否意味着“提交HTML表单时拒绝”? 我输入了“4e4--23”。HTML并没有拒绝它

因此,
不能阻止非数值的输入。 我不在乎我是否能通过编程纠正用户的输入。 例如,用户输入的减号不在第一个位置-使用JavaScript,理论上我可以删除它

然而这里有一个不明显的JavaScript行为:当输入元素 具有“number”属性且
为无效数字,
元素。值
返回 空字符串。编程验证非常棘手:因为我们 如果字符串值为空,则验证程序将返回“输入不得为空。请输入值。”在“非空”中输入时出错

document.getElementById(“目标”).addEventListener(“输入”,黑盒=>{
log(document.getElementById(“target”).value);
});
试试这个:

我只接受数字:

我只接受包含一点的数字:
编辑:我接受包含点的负数:
编辑:我接受包含点的负数:
EDIT2:我接受包含一个点的负数(只有一个“减号”):
编辑3:我也接受“e”和“e”

试试

你能用tag检查一下吗?@Antony谢谢你的回复。我的回答是:一般来说-不。我不会将我的每个组件包装到
表单
。您可以使用
.checkValidity()
来知道值是否正确,或者,使用输入类型文本,过滤其
以匹配数字。我认为浏览器不会在输入时验证,只有在提交时才会验证。因此,用户可以在输入字段中输入任何内容,包括完整的单词。如果你需要检查输入,你必须编写自己的脚本。这不允许负数添加一个允许负数的新输入是的,但现在你可以添加另一个只允许1个负数的输入,正则表达式需要调整为只允许在开始时使用(这个方法在firefox上也适用)很抱歉吹毛求疵,但这也需要能够支持大写和小写“e”的科学记数法。Safari不支持“e”
inputmode=“numeric”
,只有在Firefox中明确启用后才支持。谢谢您的回答。很抱歉,但看起来它甚至在chrome中也不起作用。我将您的解决方案输入到。请尝试输入类似于
4-6-5--
-这不会被阻止。这是因为数字中允许使用减号。诚然,它应该只出现一次,但在最终验证输入之前,无论是在提交时还是在输入失去焦点时,您都应该对用户输入编辑持开放态度,而不是对每次按键进行微观管理