내 프로그램에서 나중에 사용할 함수 하나를 사용하려고합니다.매개 변수가있는 함수를 호출하는 변수가 정의되지 않았습니다.
나는 다음과 같은 코드가 있습니다
var calculate = function(ingVolume, percentCarrier, totalCarrierVolume, totalIngredientVolume) {
var volume = document.getElementById(ingVolume).value;
var carrier = document.getElementById(percentCarrier).value;
var mCarrier = carrier/100;
var x = document.getElementById(totalCarrierVolume).innerHTML = mCarrier*(volume/(1-
mCarrier));
var y = document.getElementById(totalIngredientVolume).innerHTML = parseInt(volume) + x;
return [x, y];
};
var value1 = calculate('a', 'b', 'c', 'd');
var subvalue1_1 = value1[0];
var subvalue1_2 = value1[1];
var value2 = calculate('e', 'f', 'g', 'h');
var subvalue2_1 = value2[0];
var subvalue2_2 = value2[1];
var value3 = calculate('i', 'j', 'k', 'l');
var subvalue3_1 = value3[0];
var subvalue3_2 = value3[1];
var value4 = calculate('m', 'n', 'o', 'p');
var subvalue4_1 = value4[0];
var subvalue4_2 = value4[1];
var value5 = calculate('q', 'r', 's', 't');
var subvalue5_1 = value5[0];
var subvalue5_2 = value5[1];
function calculate2() {
document.getElementById("demo").innerHTML = value1;
};
것은 나는이에 몇 가지 숫자를 연결하고 그것을 실행하는 경우를 변수 '값 1'은 정의로 반환됩니다. 그러나 자바 스크립트 콘솔에서 calculate ('a', 'b', 'c', 'd')를 실행하면 잘 실행되고 해당 매개 변수에 대해 [x 값, y 값]을 반환합니다. 나는 결국에 대한 subvalue1_1 및 subvalue1_2를 사용하려면
<form name="testing">
<table border="1" style="padding: 5px;">
<tr>
<td>Ingredient Name</td>
<td>Amount (in Mg)</td>
<td>% Carrier</td>
<td></td>
<td>Total Carrier Volume</td>
<td>Total Ingredient Volume</td>
</tr>
<tr>
<td><input type="text"></input></td>
<td><input type="number" id="a"> Mg</input></td>
<td><input type="number" id="b"></input> %</td>
<td><button type="button" onclick="calculate('a', 'b', 'c', 'd')">Calculate Final
Volume</button></td>
<td id="c"></td>
<td id="d"></td>
<td><a href="#" onclick="toggleRow('row2')">New Ingredient</a></td>
</tr>
<tr id="row2" style="display: none;">
<td><input type="text"></input></td>
<td><input type="number" id="e"> Mg</input></td>
<td><input type="number" id="f"></input> %</td>
<td><button type="button" onclick="calculate('e', 'f', 'g', 'h')">Calculate Final
Volume</button></td>
<td id="g"></td>
<td id="h"></td>
<td><a href="#" onclick="toggleRow('row3')">New Ingredient</a></td>
<td><a href="#" onclick="toggleRow('row2')">Delete Ingredient</a></td>
</tr>
<tr id="row3" style="display: none;">
<td><input type="text"></input></td>
<td><input type="number" id="i"> Mg</input></td>
<td><input type="number" id="j"></input> %</td>
<td><button type="button" onclick="calculate('i', 'j', 'k', 'l')">Calculate Final
Volume</button></td>
<td id="k"></td>
<td id="l"></td>
<td><a href="#" onclick="toggleRow('row4')">New Ingredient</a></td>
<td><a href="#" onclick="toggleRow('row3')">Delete Ingredient</a></td>
</tr>
<tr id="row4" style="display: none;">
<td><input type="text"></input></td>
<td><input type="number" id="m"> Mg</input></td>
<td><input type="number" id="n"></input> %</td>
<td><button type="button" onclick="calculate('m', 'n', 'o', 'p')">Calculate Final
Volume</button></td>
<td id="o"></td>
<td id="p"></td>
<td><a href="#" onclick="toggleRow('row5')">New Ingredient</a></td>
<td><a href="#" onclick="toggleRow('row4')">Delete Ingredient</a></td>
</tr>
<tr id="row5" style="display: none;">
<td><input type="text"></input></td>
<td><input type="number" id="q"> Mg</input></td>
<td><input type="number" id="r"></input> %</td>
<td><button type="button" onclick="calculate('q', 'r', 's', 't')">Calculate Final
Volume</button></td>
<td id="s"></td>
<td id="t"></td>
<td><a href="#" onclick="noMoreRows()">New Ingredient</a></td>
<td><a href="#" onclick="toggleRow('row5')">Delete Ingredient</a></td>
</tr>
</table>
</form>
<button type="button" onclick="calculate2()">Click Me</button>
<p id="demo"></p>
:
정확한 오류 메시지는 다음과 HTML에 대한 var volume = document.getElementById(ingVolume).value;
그것은되고있는 실행
"Uncaught TypeError: Cannot read property 'value' of null" for line 17
입니다 다른 함수에 의한 추가 계산이 필요하지만 value1에 값이 저장되어 있지 않으면 작동하지 않습니다.
html은 HTML 문서의 머리 부분에있는 javascript 다음에 나타납니다.
내가 볼 수 없습니다. 'calculate'가 호출 된 것을 볼 수 있지만, 아래쪽에있는 것은 어디에 있는가? (value1 = calculate ('a', 'b', 'c', 'd')')? 다른 말로하면, 당신이 무엇을 요구하고 있는지 불분명합니다. – akonsu
요소가 어떤 값을 가지기 전에'calculate'를 직접 호출하는 것처럼 보입니다. 결국 NaN으로 끝납니다. – adeneo
@akonsu 스크립트가로드 될 때 호출됩니다. – FlyingPiMonster