拆分为部分后无法从输入字段中获取值以进行计算本身
Can't get value from input field after split to parts for calculate itself
当用户从带有加号的文本字段发送值时,我想对一些值求和。
拆分此字段的值后,我总是得到 NAN。
我已经尝试了几个选项(parseInt,parseFloat),正如你在javascript代码中看到的那样,但无法让它工作。
也许有人可以提供帮助:
我的网页代码:
<input type="text" id="testsum" placeholder="gelieferte CBM" value="5+6+8+2" onblur="CbmErrechnen(this.value)">
我的JavaScript:
function CbmErrechnen () {
var parts = document.getElementById('testsum').value.split('+', 5);
var zahl0 = parseInt((parts[0]).innerHTML, 10);
var zahl1 = parseInt((parts[1]).innerHTML, 10);
var zahl2 = parseFloat(parts[2]);
var zahl3 = parseFloat(parts[3]);
var zahl4 = parseFloat(parts[4]);
var sum = (zahl0)+(zahl1);
alert(sum);
return false;
}
也许有人可以提供帮助。
编辑:根据下面的评论进行扩展。
您在粘贴的示例中的 parseInt 没有 dave 提到的 innerHTML 属性。在下面的代码中,我们迭代数组中的每个值,该值是从拆分生成的,并对每个值求和(当然,这假设您要将所有值相加)。
var parts = document.getElementById('testsum').value.split('+', 5), result = 0;
for (var a = 0; a < parts.length;a++) {
result += parseInt(parts[a]);
}
alert(result);
如果你想添加"一些"值,Dave 的答案是正确的,或者你可以使用类似的东西,用相关的数组位置替换 x 和 y:
var result = parseInt(parts[x]) + parseInt(parts[y])
许多人建议不要使用eval,其他一些答案建议在这里查看stackoverflow
(parts[0]).innerHTML
部件将没有内部 HTML 属性。
function CbmErrechnen () {
var parts = document.getElementById('testsum').value.split('+', 5);
var zahl0 = parseInt(parts[0]);
var zahl1 = parseInt(parts[1]);
var zahl2 = parseFloat(parts[2]);
var zahl3 = parseFloat(parts[3]);
var zahl4 = parseFloat(parts[4]);
var sum = (zahl0)+(zahl1);
alert(sum);
return false;
}
您可以简单地使用:
eval(document.getElementById("testsum").value);
演示小提琴
我对快速而多的答案感到非常惊讶。
谢谢大家。他们都已经并将帮助我。真的太棒了。
真的不明白为什么 eval(...) 不好用,因为这对我的问题很有帮助,但感谢您提供回答这个问题的链接 (@Jeggs)。
因为我只在本地使用此代码,所以性能和安全性对我来说并不重要。
所以再来一次:非常 - 非常感谢大家
相关文章:
- 从Rally获取一个特定的标记,以便计算另一个字段中的值
- 如何在自定义指令中获取计算的属性
- 获取唯一值并使用javascript计算金额总和
- 从表单中获取用户输入执行计算(操作顺序)并输出回该表单
- 通过javascript/jquery从html表中获取值并进行计算
- 使用reactjs setState回调获取上一个输入值的计算值
- 正在获取客户端计算机上特定目录中的文件名
- 在 javascript 中逐个类获取元素并计算其中的元素数量
- 以点表示法计算字符串,以从视图中的对象获取相应的值
- 从HTML表单中获取计算得到的JavaScript数据,并将其作为新元素添加到相同的表单操作中以使用PHP保存
- 获取javascript计算字段时遇到问题
- 使用AngularJS从服务器获取计算结果
- 获取计算高度-Javascript-而不是jQuery
- 如何返回外部样式表类应用于元素的所有CSS属性(不获取计算样式!)
- 从两个可观测数组中获取计算值
- 使用Marionette Backbone.js渲染视图后,获取计算的CSS属性(例如:宽度)
- 获取计算的可观察对象依赖项
- 获取计算样式的元素
- 正在游戏控制器中获取计算属性
- 获取计算样式并省略默认值