我正在尝试制作一支笔,其中包含我正在学习的javascript练习。这是笔:https://codepen.io/ychalfari/pen/JVYoNW
在这种情况下,我试图从输入中接受一个数组,并运行一个函数,当您单击按钮时,该函数将对数组求和,结果应显示在下面。
当我单击按钮时,我得到一个错误:“错误的路径/boomboom/index.html”
或者什么也没有发生,只是重新加载页面,它使我到达页面顶部。
HTML
<form id="sum-arr-form">
<div class="form-wrap" >
<label for="arr-to-sum"> Enter an Array to sum: <input id="arr-to-sum" class ="med-input" type="text" value = "">
<button class="btn1" onclick ="sumOfArray()">submit</div> </form>
<p>Result: <span id="demo"></span></p>
JavaScript
let inputArr = document.getElementById('arr-to-sum').value;
const add = (a,b) => a+b;
const sumOfArray = function() {
let sum = inputArr.reduce(add);
document.getElementById("demo").innerHTML = sum;};
答案 0 :(得分:2)
您的代码中有一些错误。(没有类型的按钮标记将触发提交)
<button class="btn1" onclick ="sumOfArray()">submit
将此行更改为
<input type="button "class="btn1" onclick ="sumOfArray()" value="submit">
然后获取sumOfArray函数内部的输入值。 (在sumOfArray函数中添加以下两行)(上面waynelpu的答案)
let inputArrStr = document.getElementById('arr-to-sum').value;
let inputArr = JSON.parse(inputArrStr);
答案 1 :(得分:1)
从输入获取的值是字符串,如果要将其作为数组处理,则需要转换为js中的正确类型,请尝试
let inputArrStr = document.getElementById('arr-to-sum').value;
let inputArr = JSON.parse(inputArrStr);