html - Chrome 自动格式化 input=number

标签 html google-chrome input

我有一个 Web 应用程序,我在其中使用 HTML5 属性 type="number"将输入字段指定为数字。

<input type="number" value="123456" />

通过指定类型,Chrome 会自动设置值的格式以包含逗号 (123,456)。在其他浏览器中,它不会格式化数字,但也不会阻止非数字字符。

在这种情况下,我不想添加逗号。有什么办法可以关闭本地化格式吗?

最佳答案

发生这种情况是因为 Chromium 中与 HTML5 number 输入类型相关的行为,您肯定是 not the only one那不关心这个。

我过去曾使用 text 类型解决过这个问题。例如,这运行良好(刚刚在 Chrome 11.0.696.71 中测试):

<input type="text" 
       placeholder="Enter Text" 
       name="inputName" 
       pattern="[0-9]*">

number 类型的这种行为(至少对我而言)绝对是一个错误,因为 HTML5 standard指定 number 在格式化显示时应具有以下值:

The algorithm to convert a number to a string, given a number input, is as follows: Return a valid floating point number that represents input.

标准定义了一个“有效浮点”数here ,据我所知,不希望包含分组字符。


更新

我已将问题隔离到 WebKit 的内部代码中。我在这里也包括了解决问题的行:

// From LocalizedNumberICU.cpp
String formatLocalizedNumber(double number, unsigned fractionDigits)
{
    NumberFormat* formatter = numberFormatter();
    if (!formatter)
        return String();
    UnicodeString result;
    formatter->setMaximumFractionDigits(clampToInteger(fractionDigits));
    formatter->setGroupingUsed(FALSE); // added this line to fix the problem
    formatter->format(number, result);
    return String(result.getBuffer(), result.length());
}

我下周去度假,但计划在我回来后将这个补丁提交给 WebKit 团队。一旦他们(希望)接受补丁,Chromium 应该将其作为正常刷新过程的一部分引入。


You can see the original code here, the patched revision here, and the diff of the original file and the patched file here. The final patch was created by Shinya Kawanaka.

关于html - Chrome 自动格式化 input=number,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5345095/

相关文章:

html - 避免在新的 css 文件中使用 !important

html - Chrome 中的 CSS 错误 : how to remove space between items

javascript - 添加类或 CSS :active using javascript

javascript - 防止将错误的值粘贴到输入数字类型中

javascript - 将单词列表转换为数组

html - Bootstrap 4 order Masonry-like column cards 水平而不是垂直

javascript - Google Chrome 调试器工作异常

css - 在另一个 SVG 标签内显示仅包含样式的 SVG 标签

javascript - Forefox 和 Chrome 之间的 HTMLCollection.namedItem() 行为差异?

java - 另一个目录问题(Java)