Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вычисление javascript (https://javascript.ru/forum/misc/57986-vychislenie-javascript.html)

PHP Useless 30.08.2015 12:04

Цитата:

Сообщение от рони (Сообщение 386413)
PHP Useless,
k1 откуда берёте?

Вот скрипт одного блока
<script  type="text/javascript" > 
function getNum1(d1_1,  y1_1,d2_1, y2_1,d3_1,  y3_1,d4_1, y4_1,d5_1, y5_1) 
{ 

var k1 = 1;
var k2 = 2;
var k3 = 2;
var k4 = 1;
var k5 = 1;



// alert(val);
// if(d1_1>25){d1_1=25}
var nb1= ((4*d1_1)-y1_1)*k1;
var nb2= ((4*d2_1)-y2_1)*k2;
var nb3= ((4*d3_1)-y3_1)*k3;
var nb4= ((4*d4_1)-y4_1)*k4;
var nb5= ((4*d5_1)-y5_1)*k5;
var nb=  (nb1+nb2+nb3+nb4+nb5);
	var numb = document.getElementById('result1');
	var numb1 = document.getElementById('result1_1');
	var numb2 = document.getElementById('result1_2');
	var numb3 = document.getElementById('result1_3');
	var numb4 = document.getElementById('result1_4');
	var numb5 = document.getElementById('result1_5');

	if(navigator.appName == "Microsoft Internet Explorer")
	{	numb.innerText = nb;
		numb1.innerText = nb1;
		numb2.innerText = nb2;
		numb3.innerText = nb3;
		numb4.innerText = nb4;
		numb5.innerText = nb5;
	 }
	else
	{  var numb = document.getElementById('result1');
		numb.textContent = nb;
		numb1.textContent = nb1;
		numb2.textContent = nb2;
		numb3.textContent = nb3;
		numb4.textContent = nb4;
		numb5.textContent = nb5;
	 }
  
}

рони 30.08.2015 12:43

общая сумма для строк в таблице
 
PHP Useless,
важно правильно прописать классы как в примере в каждой таблице ...
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">

</head>

<body>
   <table width="400" class="qrup"  >
   	<thead>
   		<tr>
   			<th>Fənnlər</th>
   			<th>D</th>
   	        <th>Y</th>
            <th>FB</th>
   		</tr>
   	</thead>
   	<tbody>
   		<tr class="study">
   			<td>Ana dili</td>
   			<td><input name=""></td>
   		    <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
   		<tr class="study">
   			<td>Riyaziyyat</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr class="study">
   			<td>Fizika</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr>
        <td colspan="2" ></td>
        <td >Sizin Balınız</td>
        <td class="result"></td>
      </tr>
   	</tbody>
   </table>

   <table width="400" class="qrup"  >
   	<thead>
   		<tr>
   			<th>Fənnlər</th>
   			<th>D</th>
   			<th>D-A</th>
            <th>Y</th>
            <th>FB</th>
   		</tr>
   	</thead>
   	<tbody>
   		<tr class="study">
   			<td>Ana dili</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
   		<tr class="study">
   			<td>Riyaziyyat</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr class="study">
   			<td>Fizika</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr>
        <td colspan="3" ></td>
        <td>Sizin Balınız</td>
        <td class="result"></td>
      </tr>
   	</tbody>
   </table>
<script>
var fb = [function(a, b) { //формулы для каждой таблицы по порядку
        return 1 * (4 * a - b)  //k1 = 1
    }, function(a, b, c) {
        return 2 * (4 * a - b + c) //k1 = 2
    }],
    total = function(a) {
        return a.reduce(function(a, b) {
            return a + b
        }, 0)
    };
[].forEach.call(document.querySelectorAll(".qrup"), function(table, i) {
    var sum = [],
        result = table.querySelector(".result");
    [].forEach.call(table.querySelectorAll(".study"), function(tr, k) {
        var temp = [],
            interim = tr.querySelector(".interim");
        sum[k] = 0;
        [].forEach.call(tr.querySelectorAll("input"), function(input, j) {
            temp[j] = 0;
            input.addEventListener("input", function() {
                var val = +input.value || 0;
                input.value = temp[j] = val;
                sum[k] = fb[i].apply(null, temp);
                interim.innerHTML = sum[k];
                result.innerHTML = total(sum)
            })
        })
    })
});
</script>

</body>

</html>

PHP Useless 30.08.2015 14:09

Цитата:

Сообщение от рони (Сообщение 386453)
PHP Useless,
важно правильно прописать классы как в примере в каждой таблице ...
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">

</head>

<body>
   <table width="400" class="qrup"  >
   	<thead>
   		<tr>
   			<th>Fənnlər</th>
   			<th>D</th>
   	        <th>Y</th>
            <th>FB</th>
   		</tr>
   	</thead>
   	<tbody>
   		<tr class="study">
   			<td>Ana dili</td>
   			<td><input name=""></td>
   		    <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
   		<tr class="study">
   			<td>Riyaziyyat</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr class="study">
   			<td>Fizika</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr>
        <td colspan="2" ></td>
        <td >Sizin Balınız</td>
        <td class="result"></td>
      </tr>
   	</tbody>
   </table>

   <table width="400" class="qrup"  >
   	<thead>
   		<tr>
   			<th>Fənnlər</th>
   			<th>D</th>
   			<th>D-A</th>
            <th>Y</th>
            <th>FB</th>
   		</tr>
   	</thead>
   	<tbody>
   		<tr class="study">
   			<td>Ana dili</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
   		<tr class="study">
   			<td>Riyaziyyat</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr class="study">
   			<td>Fizika</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr>
        <td colspan="3" ></td>
        <td>Sizin Balınız</td>
        <td class="result"></td>
      </tr>
   	</tbody>
   </table>
<script>
var fb = [function(a, b) { //формулы для каждой таблицы по порядку
        return 1 * (4 * a - b)  //k1 = 1
    }, function(a, b, c) {
        return 2 * (4 * a - b + c) //k1 = 2
    }],
    total = function(a) {
        return a.reduce(function(a, b) {
            return a + b
        }, 0)
    };
[].forEach.call(document.querySelectorAll(".qrup"), function(table, i) {
    var sum = [],
        result = table.querySelector(".result");
    [].forEach.call(table.querySelectorAll(".study"), function(tr, k) {
        var temp = [],
            interim = tr.querySelector(".interim");
        sum[k] = 0;
        [].forEach.call(tr.querySelectorAll("input"), function(input, j) {
            temp[j] = 0;
            input.addEventListener("input", function() {
                var val = +input.value || 0;
                input.value = temp[j] = val;
                sum[k] = fb[i].apply(null, temp);
                interim.innerHTML = sum[k];
                result.innerHTML = total(sum)
            })
        })
    })
});
</script>

</body>

</html>

Но класс Y должен отнимать баллы а D-A прибавляеть

PHP Useless 30.08.2015 14:15

Цитата:

Сообщение от рони (Сообщение 386453)
PHP Useless,
важно правильно прописать классы как в примере в каждой таблице ...
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">

</head>

<body>
   <table width="400" class="qrup"  >
   	<thead>
   		<tr>
   			<th>Fənnlər</th>
   			<th>D</th>
   	        <th>Y</th>
            <th>FB</th>
   		</tr>
   	</thead>
   	<tbody>
   		<tr class="study">
   			<td>Ana dili</td>
   			<td><input name=""></td>
   		    <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
   		<tr class="study">
   			<td>Riyaziyyat</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr class="study">
   			<td>Fizika</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr>
        <td colspan="2" ></td>
        <td >Sizin Balınız</td>
        <td class="result"></td>
      </tr>
   	</tbody>
   </table>

   <table width="400" class="qrup"  >
   	<thead>
   		<tr>
   			<th>Fənnlər</th>
   			<th>D</th>
   			<th>D-A</th>
            <th>Y</th>
            <th>FB</th>
   		</tr>
   	</thead>
   	<tbody>
   		<tr class="study">
   			<td>Ana dili</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
   		<tr class="study">
   			<td>Riyaziyyat</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr class="study">
   			<td>Fizika</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr>
        <td colspan="3" ></td>
        <td>Sizin Balınız</td>
        <td class="result"></td>
      </tr>
   	</tbody>
   </table>
<script>
var fb = [function(a, b) { //формулы для каждой таблицы по порядку
        return 1 * (4 * a - b)  //k1 = 1
    }, function(a, b, c) {
        return 2 * (4 * a - b + c) //k1 = 2
    }],
    total = function(a) {
        return a.reduce(function(a, b) {
            return a + b
        }, 0)
    };
[].forEach.call(document.querySelectorAll(".qrup"), function(table, i) {
    var sum = [],
        result = table.querySelector(".result");
    [].forEach.call(table.querySelectorAll(".study"), function(tr, k) {
        var temp = [],
            interim = tr.querySelector(".interim");
        sum[k] = 0;
        [].forEach.call(tr.querySelectorAll("input"), function(input, j) {
            temp[j] = 0;
            input.addEventListener("input", function() {
                var val = +input.value || 0;
                input.value = temp[j] = val;
                sum[k] = fb[i].apply(null, temp);
                interim.innerHTML = sum[k];
                result.innerHTML = total(sum)
            })
        })
    })
});
</script>

</body>

</html>

и к1 это для разных предметов свой Родной язык(1) Математика(2) Физика(2)
Химия(1)
Иностранный язык(1)

PHP Useless 30.08.2015 14:29

Цитата:

Сообщение от рони (Сообщение 386453)
PHP Useless,
важно правильно прописать классы как в примере в каждой таблице ...
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">

</head>

<body>
   <table width="400" class="qrup"  >
   	<thead>
   		<tr>
   			<th>Fənnlər</th>
   			<th>D</th>
   	        <th>Y</th>
            <th>FB</th>
   		</tr>
   	</thead>
   	<tbody>
   		<tr class="study">
   			<td>Ana dili</td>
   			<td><input name=""></td>
   		    <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
   		<tr class="study">
   			<td>Riyaziyyat</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr class="study">
   			<td>Fizika</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr>
        <td colspan="2" ></td>
        <td >Sizin Balınız</td>
        <td class="result"></td>
      </tr>
   	</tbody>
   </table>

   <table width="400" class="qrup"  >
   	<thead>
   		<tr>
   			<th>Fənnlər</th>
   			<th>D</th>
   			<th>D-A</th>
            <th>Y</th>
            <th>FB</th>
   		</tr>
   	</thead>
   	<tbody>
   		<tr class="study">
   			<td>Ana dili</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
   		<tr class="study">
   			<td>Riyaziyyat</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr class="study">
   			<td>Fizika</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr>
        <td colspan="3" ></td>
        <td>Sizin Balınız</td>
        <td class="result"></td>
      </tr>
   	</tbody>
   </table>
<script>
var fb = [function(a, b) { //формулы для каждой таблицы по порядку
        return 1 * (4 * a - b)  //k1 = 1
    }, function(a, b, c) {
        return 2 * (4 * a - b + c) //k1 = 2
    }],
    total = function(a) {
        return a.reduce(function(a, b) {
            return a + b
        }, 0)
    };
[].forEach.call(document.querySelectorAll(".qrup"), function(table, i) {
    var sum = [],
        result = table.querySelector(".result");
    [].forEach.call(table.querySelectorAll(".study"), function(tr, k) {
        var temp = [],
            interim = tr.querySelector(".interim");
        sum[k] = 0;
        [].forEach.call(tr.querySelectorAll("input"), function(input, j) {
            temp[j] = 0;
            input.addEventListener("input", function() {
                var val = +input.value || 0;
                input.value = temp[j] = val;
                sum[k] = fb[i].apply(null, temp);
                interim.innerHTML = sum[k];
                result.innerHTML = total(sum)
            })
        })
    })
});
</script>

</body>

</html>

не для каждой таблицы а для каждой строки правильной так
var fb = [function(a, b, с) { 
        return 1 * (4 * a - b + 4*с)  //k1 = 1
    }, function(a, b, c) {
        return 2 * (4 * a - b + 4*c) //k1 = 2


должно быть так (4*D+4*D-A)*1 или 2 в зависимости от предмета (математика 2 а вот родной язык 1)

рони 30.08.2015 14:48

PHP Useless, попробуйте разобраться, коэффициент добавляет в теге предмета data-k, функции изменены
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">

</head>

<body>
   <table width="400" class="qrup"  >
   	<thead>
   		<tr>
   			<th>Fənnlər</th>
   			<th>D</th>
   	        <th>Y</th>
            <th>FB</th>
   		</tr>
   	</thead>
   	<tbody>
   		<tr class="study" data-k="1">
   			<td>Родной язык</td>
   			<td><input name=""></td>
   		    <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
   		<tr class="study" data-k="2">
   			<td>Математика</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr class="study" data-k="2">
   			<td>Физика</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr>
        <td colspan="2" ></td>
        <td >Sizin Balınız</td>
        <td class="result"></td>
      </tr>
   	</tbody>
   </table>

   <table width="400" class="qrup"  >
   	<thead>
   		<tr>
   			<th>Fənnlər</th>
   			<th>D</th>
   			<th>D-A</th>
            <th>Y</th>
            <th>FB</th>
   		</tr>
   	</thead>
   	<tbody>
   		<tr class="study" data-k="1">
   			<td>Родной язык</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
   		<tr class="study" data-k="2">
   			<td>Математика</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr class="study" data-k="2">
   			<td>Физика</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr>
        <td colspan="3" ></td>
        <td>Sizin Balınız</td>
        <td class="result"></td>
      </tr>
   	</tbody>
   </table>
<script>
var fb = [function(a, b) { //формулы для каждой таблицы по порядку
        return 4 * a - b
    }, function(a, b, c) {
        return 4 * a + b - c
    }],
    total = function(a) {
        return a.reduce(function(a, b) {
            return a + b
        }, 0)
    };
[].forEach.call(document.querySelectorAll(".qrup"), function(table, i) {
    var sum = [],
        result = table.querySelector(".result");
    [].forEach.call(table.querySelectorAll(".study"), function(tr, n) {
        var temp = [],
            interim = tr.querySelector(".interim"), k = +tr.dataset.k||1;
        sum[n] = 0;
        [].forEach.call(tr.querySelectorAll("input"), function(input, j) {
            temp[j] = 0;
            input.addEventListener("input", function() {
                var val = +input.value || 0;
                input.value = temp[j] = val;
                sum[n] = fb[i].apply(null, temp) * k;
                interim.innerHTML = sum[n];
                result.innerHTML = total(sum)
            })
        })
    })
});
</script>

</body>

</html>

PHP Useless 30.08.2015 15:27

Цитата:

Сообщение от рони (Сообщение 386495)
PHP Useless, попробуйте разобраться, коэффициент добавляет в теге предмета data-k, функции изменены
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">

</head>

<body>
   <table width="400" class="qrup"  >
   	<thead>
   		<tr>
   			<th>Fənnlər</th>
   			<th>D</th>
   	        <th>Y</th>
            <th>FB</th>
   		</tr>
   	</thead>
   	<tbody>
   		<tr class="study" data-k="1">
   			<td>Родной язык</td>
   			<td><input name=""></td>
   		    <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
   		<tr class="study" data-k="2">
   			<td>Математика</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr class="study" data-k="2">
   			<td>Физика</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr>
        <td colspan="2" ></td>
        <td >Sizin Balınız</td>
        <td class="result"></td>
      </tr>
   	</tbody>
   </table>

   <table width="400" class="qrup"  >
   	<thead>
   		<tr>
   			<th>Fənnlər</th>
   			<th>D</th>
   			<th>D-A</th>
            <th>Y</th>
            <th>FB</th>
   		</tr>
   	</thead>
   	<tbody>
   		<tr class="study" data-k="1">
   			<td>Родной язык</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
   		<tr class="study" data-k="2">
   			<td>Математика</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr class="study" data-k="2">
   			<td>Физика</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr>
        <td colspan="3" ></td>
        <td>Sizin Balınız</td>
        <td class="result"></td>
      </tr>
   	</tbody>
   </table>
<script>
var fb = [function(a, b) { //формулы для каждой таблицы по порядку
        return 4 * a - b
    }, function(a, b, c) {
        return 4 * a + b - c
    }],
    total = function(a) {
        return a.reduce(function(a, b) {
            return a + b
        }, 0)
    };
[].forEach.call(document.querySelectorAll(".qrup"), function(table, i) {
    var sum = [],
        result = table.querySelector(".result");
    [].forEach.call(table.querySelectorAll(".study"), function(tr, n) {
        var temp = [],
            interim = tr.querySelector(".interim"), k = +tr.dataset.k||1;
        sum[n] = 0;
        [].forEach.call(tr.querySelectorAll("input"), function(input, j) {
            temp[j] = 0;
            input.addEventListener("input", function() {
                var val = +input.value || 0;
                input.value = temp[j] = val;
                sum[n] = fb[i].apply(null, temp) * k;
                interim.innerHTML = sum[n];
                result.innerHTML = total(sum)
            })
        })
    })
});
</script>

</body>

</html>

Почему при удалении части кода которая мне не нужна скрипт не работает?
<table width="400" class="qrup"  >
013
    <thead>
014
        <tr>
015
            <th>Fənnlər</th>
016
            <th>D</th>
017
            <th>Y</th>
018
            <th>FB</th>
019
        </tr>
020
    </thead>
021
    <tbody>
022
        <tr class="study" data-k="1">
023
            <td>Родной язык</td>
024
            <td><input name=""></td>
025
            <td><input name=""></td>
026
            <td class="interim"></td>
027
        </tr>
028
        <tr class="study" data-k="2">
029
            <td>Математика</td>
030
            <td><input name=""></td>
031
            <td><input name=""></td>
032
            <td class="interim"></td>
033
        </tr>
034
        <tr class="study" data-k="2">
035
            <td>Физика</td>
036
            <td><input name=""></td>
037
            <td><input name=""></td>
038
            <td class="interim"></td>
039
        </tr>
040
        <tr>
041
        <td colspan="2" ></td>
042
        <td >Sizin Balınız</td>
043
        <td class="result"></td>
044
      </tr>
045
    </tbody>
046
   </table>

PHP Useless 30.08.2015 15:35

Цитата:

Сообщение от рони (Сообщение 386495)
PHP Useless, попробуйте разобраться, коэффициент добавляет в теге предмета data-k, функции изменены
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">

</head>

<body>
   <table width="400" class="qrup"  >
   	<thead>
   		<tr>
   			<th>Fənnlər</th>
   			<th>D</th>
   	        <th>Y</th>
            <th>FB</th>
   		</tr>
   	</thead>
   	<tbody>
   		<tr class="study" data-k="1">
   			<td>Родной язык</td>
   			<td><input name=""></td>
   		    <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
   		<tr class="study" data-k="2">
   			<td>Математика</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr class="study" data-k="2">
   			<td>Физика</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr>
        <td colspan="2" ></td>
        <td >Sizin Balınız</td>
        <td class="result"></td>
      </tr>
   	</tbody>
   </table>

   <table width="400" class="qrup"  >
   	<thead>
   		<tr>
   			<th>Fənnlər</th>
   			<th>D</th>
   			<th>D-A</th>
            <th>Y</th>
            <th>FB</th>
   		</tr>
   	</thead>
   	<tbody>
   		<tr class="study" data-k="1">
   			<td>Родной язык</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
   		<tr class="study" data-k="2">
   			<td>Математика</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr class="study" data-k="2">
   			<td>Физика</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr>
        <td colspan="3" ></td>
        <td>Sizin Balınız</td>
        <td class="result"></td>
      </tr>
   	</tbody>
   </table>
<script>
var fb = [function(a, b) { //формулы для каждой таблицы по порядку
        return 4 * a - b
    }, function(a, b, c) {
        return 4 * a + b - c
    }],
    total = function(a) {
        return a.reduce(function(a, b) {
            return a + b
        }, 0)
    };
[].forEach.call(document.querySelectorAll(".qrup"), function(table, i) {
    var sum = [],
        result = table.querySelector(".result");
    [].forEach.call(table.querySelectorAll(".study"), function(tr, n) {
        var temp = [],
            interim = tr.querySelector(".interim"), k = +tr.dataset.k||1;
        sum[n] = 0;
        [].forEach.call(tr.querySelectorAll("input"), function(input, j) {
            temp[j] = 0;
            input.addEventListener("input", function() {
                var val = +input.value || 0;
                input.value = temp[j] = val;
                sum[n] = fb[i].apply(null, temp) * k;
                interim.innerHTML = sum[n];
                result.innerHTML = total(sum)
            })
        })
    })
});
</script>

</body>

</html>

Исправил Все работает СПАСИБО, и как поставить ограничение на переменные a и b чтоб а был ниже 21 больше нельзя

PHP Useless 30.08.2015 16:06

Цитата:

Сообщение от рони (Сообщение 386495)
PHP Useless, попробуйте разобраться, коэффициент добавляет в теге предмета data-k, функции изменены
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">

</head>

<body>
   <table width="400" class="qrup"  >
   	<thead>
   		<tr>
   			<th>Fənnlər</th>
   			<th>D</th>
   	        <th>Y</th>
            <th>FB</th>
   		</tr>
   	</thead>
   	<tbody>
   		<tr class="study" data-k="1">
   			<td>Родной язык</td>
   			<td><input name=""></td>
   		    <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
   		<tr class="study" data-k="2">
   			<td>Математика</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr class="study" data-k="2">
   			<td>Физика</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr>
        <td colspan="2" ></td>
        <td >Sizin Balınız</td>
        <td class="result"></td>
      </tr>
   	</tbody>
   </table>

   <table width="400" class="qrup"  >
   	<thead>
   		<tr>
   			<th>Fənnlər</th>
   			<th>D</th>
   			<th>D-A</th>
            <th>Y</th>
            <th>FB</th>
   		</tr>
   	</thead>
   	<tbody>
   		<tr class="study" data-k="1">
   			<td>Родной язык</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
   		<tr class="study" data-k="2">
   			<td>Математика</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr class="study" data-k="2">
   			<td>Физика</td>
   			<td><input name=""></td>
   			<td><input name=""></td>
            <td><input name=""></td>
            <td class="interim"></td>
   		</tr>
        <tr>
        <td colspan="3" ></td>
        <td>Sizin Balınız</td>
        <td class="result"></td>
      </tr>
   	</tbody>
   </table>
<script>
var fb = [function(a, b) { //формулы для каждой таблицы по порядку
        return 4 * a - b
    }, function(a, b, c) {
        return 4 * a + b - c
    }],
    total = function(a) {
        return a.reduce(function(a, b) {
            return a + b
        }, 0)
    };
[].forEach.call(document.querySelectorAll(".qrup"), function(table, i) {
    var sum = [],
        result = table.querySelector(".result");
    [].forEach.call(table.querySelectorAll(".study"), function(tr, n) {
        var temp = [],
            interim = tr.querySelector(".interim"), k = +tr.dataset.k||1;
        sum[n] = 0;
        [].forEach.call(tr.querySelectorAll("input"), function(input, j) {
            temp[j] = 0;
            input.addEventListener("input", function() {
                var val = +input.value || 0;
                input.value = temp[j] = val;
                sum[n] = fb[i].apply(null, temp) * k;
                interim.innerHTML = sum[n];
                result.innerHTML = total(sum)
            })
        })
    })
});
</script>

</body>

</html>

А как второй блок добавить? добавил буквы изменил все не заработал даже первый

рони 30.08.2015 17:34

PHP Useless,
ненадо копировать сообщения целиком, всё что мог написано выше, вникайте находите зависимости, смотрите код и не пихайте всё в html, есть и css для красоты.


Часовой пояс GMT +3, время: 13:52.