如果在javascript函数中不起作用

时间:2013-04-24 18:54:08

标签: javascript jquery validation numbers

我使用此函数来验证一个输入元素:

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

1 个答案:

答案 0 :(得分:8)

输入元素的value属性存储为字符串,因此如果要将其视为数字,则需要将其转换为数字。您可能也会遇到qtemax的类似问题,这是不可能的。按字母顺序比较字符串" 234"来自" 5.66"然后虽然在数字上它(更多)更大。使用parseFloat功能:

var a = parseFloat(qte.value),
    b = parseFloat(qtemax);