当用户使用附加符号从文本字段发送值时,我想要求和一些值。
在分割了这个字段的值后,我总是得到NAN。
我已经尝试了几个选项(parseInt,parseFloat),就像你在javascript代码中看到的那样,但是无法让它工作。
也许有人可以提供帮助:
我的HTML代码:
<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;
}
也许有人可以提供帮助。
答案 0 :(得分:0)
(parts[0]).innerHTML
部分不具有innerHTML属性。
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;
}
答案 1 :(得分:0)
编辑:根据以下评论进行扩展。
您粘贴的示例中的parseInt没有像dave提到的innerHTML属性。在下面的代码中,我们迭代从split中生成的数组中的每个值,并对每个值求和(当然这假设你想要将所有值加在一起)。
var parts = document.getElementById('testsum').value.split('+', 5), result = 0;
for (var a = 0; a < parts.length;a++) {
result += parseInt(parts[a]);
}
alert(result);
如果你想添加一些&#34;一些&#34;戴夫的答案是正确的。的值,或者您可以使用类似的东西,用相关的数组位置替换x和y:
var result = parseInt(parts[x]) + parseInt(parts[y])
许多人建议不要使用其他一些答案建议的eval,请参阅stackoverflow here
答案 2 :(得分:0)
答案 3 :(得分:0)
我对快速和非常多的答案感到非常惊讶。
谢谢大家。所有人都有并且会帮助我。太棒了。
我真的不明白为什么eval(...)不能使用,因为这对我的问题很有帮助,但是感谢你回答的链接(@Jeggs)。
因为我只在本地使用此代码,所以性能和安全对我来说并不重要。
再一次:非常 - 非常感谢所有