我使用此函数来验证一个输入元素:
function validerInput(qte, qtemax) {
var floatRegex = /^((\d+(\.\d *)?)|((\d*\.)?\d+))$/;
if (floatRegex.test(qte.value)) {
var a = qte.value;
var b = qtemax;
if (a > b) {
alert('if qtemax : ' + qtemax + ', qte : ' + qte.value);
qte.value = '';
}
else {
alert('else qtemax : ' + qtemax + ', qte : ' + qte.value);
}
}
else {
qte.value = '';
}
}
但问题始终是启动其他人的警报,而第一个从来都不知道问题
你有什么想法吗?启动的警报包含例如234和5.66
答案 0 :(得分:8)
输入元素的value
属性存储为字符串,因此如果要将其视为数字,则需要将其转换为数字。您可能也会遇到qtemax
的类似问题,这是不可能的。按字母顺序比较字符串" 234"来自" 5.66"然后虽然在数字上它(更多)更大。使用parseFloat
功能:
var a = parseFloat(qte.value),
b = parseFloat(qtemax);