0

私はこのフォームを作成しています。これは料金計算ツールです。料金計算と料金支払いの2つのフィールドがあり、1つは残高を示し、最後に4つ目のフィールドは、JavaScriptを使用して支払い済み、未払い、または未払いの残高に従って自動更新されたステータスを示すテキストフィールドです。分割払いは正常に機能していますが、問題は、特定の値が入力されたときに何らかの理由でステータスフィールドが空白になり、JavaScriptに従って更新されないことです。これが私のJavaScriptです。

    function ff_feecalc_new_init()
    {
        setInterval("calc()", 500)
    } 

    function calc(){

        ff_getElementByName('status').value='';
        ff_getElementByName('balance').value=Number(ff_getElementByName('amountdue').value)-Number(ff_getElementByName('amountpaid').value);

        if (ff_getElementByName('amountpaid').value==0 && ff_getElementByName('amountdue').value>0){

            ff_getElementByName('status').value="unpaid";
        }
        if(ff_getElementByName('amountpaid').value>0){
            if ((ff_getElementByName('balance').value <ff_getElementByName('amountdue').value){

                ff_getElementByName('status').value="installments";
            }
        }

        if (ff_getElementByName('amountpaid').value == ff_getElementByName('amountdue').value && ff_getElementByName('amountpaid').value>0){

            ff_getElementByName('status').value="paid";
        }
    }

私が間違っていることはありますか?

4

1 に答える 1

0

JavaScript の比較では、'==' の代わりに '===' を使用することをお勧めします。parseFloat() または parseInt() も使用してみてください。

例:

if (parseInt(ff_getElementByName('amountpaid').value)===0 && parseFloat(ff_getElementByName('amountdue').value)>0){
...
}
于 2013-03-15T20:27:28.327 に答える