0

機能でトラブルに遭遇。実際、いくつかのテキスト フィールドで計算を実行するには、この関数を作成する必要があります。1行で作業したときは問題ありませんでした。しかし、最近、誰かが複数の行を持つテーブルを作成するように依頼されました (1 行を動的に追加できます)。そのため、次の機能を実行して、行を複製するだけでなく、関連するすべてのフィールドを id 変更できるようにします。これらのフィールドにクラスを追加します。 . したがって、私は次のように進めます。

function clone(line) {

     newLine = line.cloneNode(true);
     line.parentNode.appendChild(newLine);
     var tab = document.getElementsByClassName('libelle_debours')
     var i = -1;
     while (tab[++i]) {
         tab[i].setAttribute("id", "_" + i);
     };
     var cab = document.getElementsByClassName('ht_no_tva')
     var j = -1;
     while (cab[++j]) {
         cab[j].setAttribute("id", "_" + j);
     };
     var dab = document.getElementsByClassName('ht_tva')
     var k = -1;
     while (dab[++k]) {
         dab[k].setAttribute("id", "_" + k);
     };
     var eab = document.getElementsByClassName('taux')
     var l = -1;
     while (eab[++l]) {
         eab[l].setAttribute("id", "_" + l);
     };
     var fab = document.getElementsByClassName('tva')
     var m = -1;
     while (fab[++m]) {
         fab[m].setAttribute("id", "_" + m);
     };

 }

 function delRow() {
     var current = window.event.srcElement;
     //here we will delete the line
     while ((current = current.parentElement) && current.tagName != "TR");
     current.parentElement.removeChild(current);
 }

実際の問題は、計算を行うために使用される 2 番目の関数です。

 function calcdebours() {
            var taux = document.getElementById('debours_taux_tva').value;
            var ht_no_tva = document.getElementById('debours_montant_ht_no_tva').value;
            var ht_tva = document.getElementById('debours_montant_ht_tva').value;
            var tva = Math.round((((ht_tva) * (taux)) / 100) * 100) / 100;;
            if (taux == '') {
                taux = 0;
            }
            if (ht_no_tva == '') {
                ht_no_tva = 0;
            }
            if (ht_tva == '') {
                ht_tva = 0;
            }
            document.getElementById('debours_montant_tva').value = tva;
            document.getElementById('debours_montant_ttc').value = (tva) + parseFloat(ht_tva) + parseFloat(ht_no_tva)


        }

        function 

montant_debours() {
        var ttc = document.getElementById('debours_montant_ttc').value;
        var ttc2 = document.getElementById('debours_montant_ttc2').value;
        if (ttc == '') {
            var ttc = 0;
        } else {
            var ttc = document.getElementById('debours_montant_ttc').value;
        }
        if (ttc2 == '') {
            var ttc2 = 0;
        } else {
            var ttc2 = document.getElementById('debours_montant_ttc2').value;
        }
        tx = parseFloat(ttc) + parseFloat(ttc2);
        document.getElementById('ttc_cheque').value = Math.round(tx * 100) / 100;
    }

Id が同じではないので、行の数だけ関数を作成する必要がありますか?

各行を処理するために単一の関数を適合させることは可能ですか?

もしそうなら、どのように教えてもらえますか?

4

1 に答える 1