-1

我想制作一个脚本,我可以将我的表单放入 javascript 数组invoer[]并显示总数

它不断停止工作,我搜索了很多,我真的找不到正确的方法:D

这是我的 JavaScript 代码

var strijk = ['broek', 'hemd', 'tshirt', 'lakens', 'korte broek', 'babykledij'];
var minuten = [5, 10, 5, 6, 3, 3];

function invoerstrijk() {
    document.write("<form action='' method='get' name='strijkform'>");
    for (var a = 0; a < minuten.length; a++) {
        document.write(strijk[a] + "<input id='" + strijk[a] + "' name ='" + strijk[a] + "' type='text' />" + "<BR>");
    }

    document.write("<button onclick='opgeven()'>opgeven</button>");
    document.write("</form>");
}

function opgeven() {
    var invoer = [];
    for (var a = 0; a < minuten.length; a++) {
        invoer[a] = document.getElementByI(strijk[a]).value;
    }

    var totaal;
    for (var a = 0; a < minuten.length; a++) {
        totaal += parseint(invoer[a]) * parseint(minuten[a]);
    }
    document.write("<input name=" + strijk[a] + " type='text' value=" + invoer[a] + " readonly />");
    if (invoer != []) {
        document.write("totaal aantal minuten" + totaal);
    } else {
        document.write("geen invoer");
    }
}

我的 html 看起来像这样

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"   
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

<script type="text/javascript" >
//my javasccript
</script>

<button id="B1" onclick="invoerstrijk()" >Nieuwe strijk</button>
</body>
</html>
4

1 回答 1

0

这应该有效:

var strijk = ['broek', 'hemd', 'tshirt', 'lakens', 'korte broek', 'babykledij'];
var minuten = [5, 10, 5, 6, 3, 3];

function invoerstrijk() {
  document.write("<form action='' method='get' name='strijkform' onsubmit='return false;'>");
  for (var a = 0; a < minuten.length; a++) {
    document.write(strijk[a] + "<input id='" + strijk[a] + "' name ='" + strijk[a] + "' type='text' />" + "<BR>");
  }

  document.write("<button onclick='opgeven()'>opgeven</button>");
  document.write("</form>");
}

function opgeven() {
  var invoer = [];
  for (var a = 0; a < minuten.length; a++) {
    invoer.push(document.getElementById(strijk[a]).value);
  }

  var totaal = 0;
  for (var a = 0; a < minuten.length; a++) {
    totaal += (parseInt(invoer[a]) * parseInt(minuten[a]));
  }
  // !!! this is wrong because it is out of for !!!
  //document.write("<input name=" + strijk[a] + " type='text' value=" + invoer[a] + " readonly />");
  if (invoer.length > 0) {
    document.write("totaal aantal minuten " + totaal);
  } else {
    document.write("geen invoer");
  }
}

一些解释:

  1. onsubmit='返回假;' - 不发送表格并重新加载页面。
  2. invoer.push(document.getElementById(strijk[a]).value); - 将元素放入数组使用推送。
  3. 变量总计 = 0; - 初始化变量 0,因为它是未定义的。
  4. 拼写错误:不好:parseint,好:parseInt;坏:getElementByI,好:getElementById
  5. 带有 readonly 输入的行是错误的,因为它不在 for 所以没有定义变量。

Plunker 示例

于 2013-11-09T15:58:00.840 回答