【发布时间】:2020-10-20 19:19:19
【问题描述】:
我在 Drupal 8 上。实际上我使用此代码是为了有加号和减号按钮(用于添加到购物车中的数量)
var spinner = $(this),
input = spinner.find('input[type="number"]'),
btnUp = spinner.find('.quantity-up'),
btnDown = spinner.find('.quantity-down'),
min = input.attr('min'),
max = input.attr('max');
var step = input.attr('step');
step = $.isNumeric(step) ? parseFloat(step) : 1;
var scale = step.toString().split('.');
scale = scale[1] ? scale.pop().length : 0;
btnUp.click(function() {
var oldValue = parseFloat(input.val());
if (oldValue >= max) {
var newVal = oldValue;
} else {
var newVal = oldValue + step;
}
spinner.find("input").val(parseFloat(newVal)).toFixed(scale);
spinner.find("input").trigger("change");
});
btnDown.click(function() {
var oldValue = parseFloat(input.val());
if (oldValue <= min) {
var newVal = oldValue;
} else {
var newVal = oldValue - step;
}
spinner.find("input").val(parseFloat(newVal)).toFixed(scale);
spinner.find("input").trigger("change");
});
代码按预期工作,但 Firefox 和 Chrome 显示:
TypeError: t.find(...).val(...).toFixed 不是函数
有什么想法可以解决这个问题吗?求回答!
【问题讨论】:
-
因为 val() 是一个字符串,而字符串没有 toFixed()。我假设你想要 toFixed 上 parseFloat....
-
.val(parseFloat(newVal)).toFixed(scale)->.val(parseFloat(newVal).toFixed(scale)) -
你在哪里使用了 t 变量?
标签: javascript drupal-8