Javascript 在<;输入类型=数字>;
我有一种奇怪的行为: javascript:Javascript 在<;输入类型=数字>;,javascript,html,Javascript,Html,我有一种奇怪的行为: javascript: function Compare(x, y) { var min = document.getElementById(x).value var max = document.getElementById(y).value if (min > max) { alert("la prix MINIMAL est SUPÉRIEUR au prix MAXIMAL!") document.for
function Compare(x, y) {
var min = document.getElementById(x).value
var max = document.getElementById(y).value
if (min > max) {
alert("la prix MINIMAL est SUPÉRIEUR au prix MAXIMAL!")
document.formacha.min.focus()
}
}
没关系,但如果我改变
min = 11
然后
他被解雇了
这就像浏览器认为
min>max
您需要使用parseInt
来比较整数值
var minValue=parseInt(min, 10);
var maxValue=parseInt(max, 10);
输入值是字符串。下面是JavaScript如何将
11
和100
作为字符串进行比较:
- 1与1比较:相等,继续下一个字符
- 与0相比,1更高,因此
高于11
100
var min = parseInt(document.getElementById(x).value,10);
var max = parseInt(document.getElementById(y).value,10);
看起来是字符串问题。您正在比较字符串,而不是数字。是的,您应该使用
parseFloat
或parseInt
,以更合适的为准。表单值是字符串。您需要使用parseInt转换为数字。首先对值执行parseInt,然后检查其中一个是否是另一个的子字符串,如果右侧是左侧的子字符串,则返回true,反之亦然,则返回false,如果两者都不支持,它就不会像你说的那样。为什么在HTNL5中,当类型为number
时,它不会自动转换?可能是为了与不支持HTML5的浏览器兼容。
alert("la prix MINIMAL est SUPÉRIEUR au prix MAXIMAL!")
var minValue=parseInt(min, 10);
var maxValue=parseInt(max, 10);
var min = parseInt(document.getElementById(x).value,10);
var max = parseInt(document.getElementById(y).value,10);