-2

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

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 = '';
    }
}

但问题始终是 else 的警报被启动并且第一个从来没有我不知道问题

你有什么主意吗 :

启动的警报包含例如 234 和 5.66

4

1 回答 1

8

输入元素的value属性存储为字符串,因此如果要将其视为数字,则需要将其转换为 1。你可能对 too 的值也有类似的问题qtemax,这是不可能的。按字母顺序比较字符串“234”在“5.66”之前,尽管在数字上它(很多)更大。使用parseFloat功能:

var a = parseFloat(qte.value),
    b = parseFloat(qtemax);
于 2013-04-24T18:58:10.703 回答