Html 请输入介于NaN和NaN范围验证之间的值
我有一个范围滑块,下面有一个代码Html 请输入介于NaN和NaN范围验证之间的值,html,jquery,validation,magento,magento2,Html,Jquery,Validation,Magento,Magento2,我有一个范围滑块,下面有一个代码 <div class="slidecontainer"> <input name="am_giftcard_amount_slider" id="am_giftcard_amount_slider" type="range" min="0" value="13" max="27" step=&q
<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>
现在我试着调试它,并在lib/web/mage/validation.js
中修改文件,现在在函数validate range
下,我添加了一个硬代码值True,只是为了进行调试,并知道如果错误消息仍然出现,响应是否为True。但是在添加返回true
后,仍会显示错误消息。我正在看这个错误
`Please enter a value between NaN and NaN`
'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.')
],
`Please enter a value between 2 and NaN`
我知道我把最小值设为2而不是0。我故意这样做是为了知道它是否真的检索到了正确的参数。现在基于此。它能够获得最小值
2
,但为什么最大值17
没有被读取?似乎消息请输入NaN和NaN之间的值
来自jquery验证系统,而不是magento one,因为magento只返回此消息:“值不在指定范围内。”
您应该考虑使用magento验证规则中的验证数字范围
和数字范围-2-17
类
`Please enter a value between 2 and NaN`