HTML 数字输入删除小数点?

标签 html input point

我在表单上输入数字时遇到问题。当我输入一个数字,比如 88.2 并提交时,没有任何问题。但是当这个人做同样的事情时,如果你从数字输入中回显变量,你可以在 php 代码中看到它已经删除了小数点 (.)。

当他使用逗号时它不会删除他的小数点,但是当我使用逗号时它会为我删除小数点。有没有办法解决这个问题,让它只接受“。”作为小数点?

这是输入:

<input id="version" name="version" step="0.1" min="1.0" max="250.0" type="number" class="input-small" placeholder="87.2"></input>

PHP代码中没有任何异常,只有

echo $_POST['version'];

input-small css:

.input-small {
  width: 90px;
}

最佳答案

Support to <input type=number> 仍然非常有限、不完整和错误。

例如,IE 10 和 Firefox 19 不支持。在它们上,元素回退到 <input type=text>。元素,这意味着任何字符串都被接受为输入并传递给服务器,没有检查。

在支持它的浏览器上,例如 Chrome,行为会有所不同,并且预计会有所不同,因为 HTML5 CR definition故意让它打开:浏览器需要以某种方式为数字输入提供一个小部件,并保证最终发送到服务器的数据根据​​元素的属性(在给定范围内等)是正确的。

在实践中,实现取决于浏览器的区域设置,作为作者,您无法控制它。这意味着浏览器可能接受 88.2,或者它可能接受 88,2(并在内部将其转换为 88.2),或者它可能同时接受两者,或者它可能原则上只接受象形文字的输入(并在内部将其转换为规范形式)。它甚至可能会解析用户输入,以便丢弃任何额外的字符,这意味着当逗号是小数点分隔符时,88FOO 和 88.2 可能会被截断为 88。

你的情况下会发生什么很难决定,因为没有描述浏览器和平台,也不清楚服务器得到了什么。但重要的是 <input type=number>根本不能依赖。它可以在受控环境中使用,在这种环境中,每个人都在同一操作系统中使用相同版本的相同浏览器,包括语言版本和区域设置。否则,使用 <input type=text>对于数字输入并在服务器端解析输入,并可选择在客户端对其进行预检查,并确保告知用户预期的输入格式(例如十进制逗号与小数点)。

关于HTML 数字输入删除小数点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14993302/

相关文章:

javascript - 如何从 HTML 页面运行 shell 脚本?

javascript - 使用 html css 和 javascript 创建弹出框

javascript - 如何获取输入文本字段中的选择框选项值

user-interface - 提示,像素和点,我的天哪!

algorithm - 如何获得描述路径的固定数量的均匀分布的点?

javascript - 通过硬编码 csv 文件的值实现下载功能

java - 如何在 page.redirect 从 servlet 到 jsp 上显示成功消息

input - 什么工具可以拦截所有桌面操作系统的数字锁定键?

javascript - 值 Javascript 输入

c++ - 如何根据圆上中点和其他点之间的角度计算圆上的点