javascript - $(this).val() 不适用于 FireFox 但适用于 Chrome

标签 javascript jquery html google-chrome firefox

这是我的问题。当我尝试在 FireFox 中设置输入字段的值时,没有任何反应。我没有收到任何错误。它根本不起作用。它应该在数字后添加两位小数。它在 Chrome 中完美运行。这是我的 jQuery 代码...

$('input.drawer').on('blur', function() {
  var number = parseFloat($(this).val());
  var n = number.toFixed(2);
  $(this).val(n);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input tabindex="1" class="drawer f-right m-left w50 right-text" type="number" placeholder="$0.00" />

我试过使用 $(this).attr('value' n); 但这也不起作用。

最佳答案

因此,它确实“有效”,但 Firefox 只是以不同的方式格式化数字,它 chop 了 0。如果你这样做了

$(this).val(6.00);

您会看到它显示 6

如果你这样做

$(this).val(6.50);

它将显示 6.5 但也会显示一个错误,表明它不是有效值。

什么错误?

输入的默认 step 值为 1,这使得 Firefox 仅将数字的倍数视为有效。

如果您设置 step="0.01",则 Firefox 会将 float 视为有效。

但是格式还是不对

但是,这仍然不会显示整数的小数点。我想这就是规范似乎没有描述值应该如何格式化的原因。

如果格式对您来说比数字输入的功能更重要,请改用普通文本输入。

关于javascript - $(this).val() 不适用于 FireFox 但适用于 Chrome,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30920194/

相关文章:

html - CSS布局问题

javascript - 这不是 javascript 类构造函数中定义的错误?

javascript - (更改)事件不适用于选择和输入元素,但适用于复选框 Angular 6、Material 6

javascript - .slideToggle 嵌套 ajax 中继器

javascript - PrettyPhoto 画廊中的最后一张图片首先加载

javascript - 如何使用全页缓存进行 A/B 测试?

css - 带有 DIV 的可打印样式表

javascript - 在灯箱中的图像上添加热点链接

javascript - 为什么这个 "vertical-align:bottom"的div的子元素在淡出之前移动到页面中间?

javascript - 在 Angular JS 中使用 HTML 版本控制渲染动态 UI