请输入一个介于NaN和NaN范围验证之间的值



我有一个范围滑块,其代码低于

<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`

现在我尝试调试它,并在函数validate-range下修改lib/web/mage/validation.js中的文件。我添加了一个硬编码值True,只是为了进行调试,并知道如果错误消息仍然出现,响应是否为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.')
],

不知道为什么即使我添加了返回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

消息Please enter a value between NaN and NaN似乎来自jquery验证系统,而不是magento,因为magento只返回此消息:">该值不在指定的范围内";。

您应该考虑使用validate-digits-rangedigits-range-2-17类,这是一个magento验证规则。

对于其他从Jquery Validation中得到Please enter a value between NaN and NaN range validation错误的人,您需要在验证之前正确设置范围输入验证规则的验证函数。

就我而言:

$("#form").validate({
rules: {
rangeInputId: {
range: [3, 10]
}
},
});

最新更新