gpt4 book ai didi

javascript - 对计算出的 值求和

转载 作者:行者123 更新时间:2023-11-30 14:32:23 26 4
gpt4 key购买 nike

我正在创建一个计算器,可以将不同的阿片类药物转换为标准的阿片类药物剂量。计算器可以很好地转换所有药物,但我无法使用 javaScript sum() 函数在单击按钮时将其全部加起来。请帮忙。

值得注意的是,“totalMED += total[i]).value;” for 循环内的代码破坏了药物计算功能(不显示任何值)。我不知道为什么。

附言我意识到这两个 calculate() 函数基本相同,但我无法获得相关值来循环遍历单个函数。我似乎有循环问题。

Updated code with comments:
<!DOCTYPE html>
<html>
<head>
<SCRIPT language="javascript" src="date.js"></SCRIPT>
<style type="text/css">
...
</style>
</head>
<body>
<form>
<table>
<tr>
<th>Medications</th>
<th>Daily Dose (mg)</th>
<th>MED</th>
<th>Medications</th>
<th>Daily Dose (mg)</th>
<th>MED</th>
</tr>
<tr>
// ---this input box is really just a label----
<td><input class="tg-yw41" type=”text” name=”Tramadol” value=Tramadol id="med”
disabled></td>

// ----This input box takes user entered dosage, calls calculate() function, and
// passes the conversion factor---
<td>'TEXT"</td><td><input class ="tg-yw41" type=”text” name=”dose” value=""
placeholder="0" Id="r18c2" onchange="calculate28('.1')"></td>

//---This input box receives the value from the calculate function via Id="MED-
// Tramadol". Also includes name="sum" for sum() function.
<td><input Id="MED-Tramadol" type=”text” name="sum" value="" disabled></td>

//----The next three rows are just duplicate of above
<td><input class="tg-yw41" type=”text” name=”Sufentanil” value="Sufentanil"
disabled></td>
<td><input class ="tg-yw41" type=”text” name=”dose” value="" placeholder="0"
Id="r18c5" onchange="calculate29('60')"></td>
<td><input Id="MED-Sufentanil-intra" type=”text” name="sum" value="" disabled></td>
</tr>
<tr>
//-----Label
<td><input value="Total Daily Morphine Equivalent Dose (MED) in Milligrams"
disabled></td>

//---Input box that should receive value from sum() function (via ID="r19c2")
<td><input class ="tg-yw41" type=”text” name=”dose” value="" placeholder="0"
Id="r19c2"></td>
</tr>

//A button that when clicked calls the sum() function
</table>
<button type="button" onclick="sum()">MED total</button>

JavaScript 函数

 <script type="text/javascript">
//Takes user input * passed conversion factor, assigns value to
document.getElementById('MED-Tramadol')
function calculate28(x)
{
var my1 = x;
var my2 = document.getElementById('r18c2').value;
//Note: value is parsed as a Float...don't know if it gets converted back to string
document.getElementById('MED-Tramadol').value = parseFloat(my1) * parseFloat(my2);
}

//same as above
function calculate29(x)
{
var my1 = x;
var my2 = document.getElementById('r18c5').value;
document.getElementById('MED-Sufentanil-intra').value = parseFloat(my1) * parseFloat(my2);
}

//Supposed to combine all values from calculate() function assigned to respective boxes
function sum() {
//should collect value from all <input> with name="sum"
var total = document.getElementsByName('sum').value;
var sum = 0;
for(var i=0; i<total.length; i++)
{

totalMED += paredFloat(total[i]).value);

}
document.getElementById('r19c2').value = totalMED;

最佳答案

当您提取输入框的值时,它会被读取为字符串。使用 parseInt() 获取数字,否则您将连接字符串。

由于您正在接受用户输入,因此您还应该对其进行验证。确保您不会得到 NaN 的一种简单方法是将值提取到一个临时变量中并在解析之前对其进行测试。

var strTemp = total[i].value;

if (strTemp)
{
totalMED += parseInt(test);
}

编辑:我忽略了paren,认为这只是问题中的错字。我决定我不应该。如果您检查浏览器的 JS 控制台,您会很容易在调用中看到诸如不匹配的 ) 之类的小错误,因为这肯定会停止程序并提供错误消息。

关于javascript - 对计算出的 <td> 值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50975588/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com