【发布时间】:2021-01-27 01:57:26
【问题描述】:
我有一个范围滑块,下面有代码
<div class="slidecontainer">
<input name="am_giftcard_amount_slider" id="am_giftcard_amount_slider" type="range" min="0" value="13" max="27" step="1" class="gg-slider validate-range range-0-27">
</div>
现在我遇到了这个错误
`Please enter a value between NaN and NaN`
现在我尝试调试它并去修改 lib/web/mage/validation.js 中的文件现在在函数 validate-range 下我添加了一个硬编码值 True 只是为了进行调试并知道如果错误消息仍然出现则响应是否为真.但在添加return true 后,错误消息仍然显示。我正在查看这个错误
'validate-range': [
function (v, elm) {
var minValue, maxValue, ranges, reRange, result, values,
i, name, validRange, minValidRange, maxValidRange;
if ($.mage.isEmptyNoTrim(v)) {
return true;
} else if ($.validator.methods['validate-digits'] && $.validator.methods['validate-digits'](v)) {
minValue = maxValue = $.mage.parseNumber(v);
} else {
ranges = /^(-?\d+)?-(-?\d+)?$/.exec(v);
if (ranges) {
minValue = $.mage.parseNumber(ranges[1]);
maxValue = $.mage.parseNumber(ranges[2]);
if (minValue > maxValue) { //eslint-disable-line max-depth
return false;
}
} else {
return false;
}
}
reRange = /^range-(-?\d+)?-(-?\d+)?$/;
result = true;
values = $(elm).prop('class').split(' ');
for (i = values.length - 1; i >= 0; i--) {
name = values[i];
validRange = reRange.exec(name);
if (validRange) {
minValidRange = $.mage.parseNumber(validRange[1]);
maxValidRange = $.mage.parseNumber(validRange[2]);
result = result &&
(isNaN(minValidRange) || minValue >= minValidRange) &&
(isNaN(maxValidRange) || maxValue <= maxValidRange);
}
}
return result;
},
$.mage.__('The value is not within the specified range.')
],
不知道为什么即使我添加了 return true 错误验证仍然显示。谁能告诉我在哪里可以调试以及如何关闭它?我现在基本上不知道在哪里寻找,因为我已经修改了 js,但它仍然抛出这个错误。请问有什么办法可以调试,我的代码有什么错误吗?
注意:我没有修改或添加任何 JQuery Slider 初始化我只是添加了滑块的 HTML 标记
更新:
我试过这段代码
<div class="slidecontainer">
<input name="am_giftcard_amount_slider" id="am_giftcard_amount_slider" type="range" min="0" digits="true" value="13" max="27" range="2,17" step="1" class="gg-slider ignore">
</div>
在我放置 range="2,17" 后出现此错误
`Please enter a value between 2 and NaN`
我知道我把 2 而不是 0 作为最小值。我故意这样做是为了知道它是否真的在检索正确的参数。现在基于此。它能够得到2作为最小值,但为什么没有读取最大值17?
【问题讨论】:
标签: html jquery validation magento magento2