-2

この関数を使用して、1 つの入力要素を検証します。

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 が含まれます

4

1 に答える 1

8

入力要素のvalueプロパティは文字列として保存されるため、数値として扱いたい場合は数値に変換する必要があります。の値にqtemaxも同様の問題がある可能性がありますが、言うことはできません。文字列をアルファベット順に比較すると、「234」が「5.66」よりも前になりますが、数値的には(はるかに)大きくなります。parseFloat関数を使用します。

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