为什么document.forms [“myform”] [“input”]。value返回undefined

时间:2013-08-13 01:04:56

标签: javascript validation

所以这是我尝试制作Tone Matrix程序的HTML5版本。所以这就是问题,我让用户输入他们想要他们的歌曲的时间,然后确保他们输入了一个数字,所以我用了

  function initiate(){
  var min = document.forms["initiator"]["min"].value;
  var sec = document.forms["initiator"]["sec"].value;
  // some logic
  return false;}

检查他们输入的内容是否确实是一个数字但是当我尝试这样做时,浏览器会回吐“Uncaught TypeError:无法读取未定义的属性'min'”这里是我的DOM中的内容。

<form onsubmit="return initiate()">
Your song will be (at most): <input type="number" name="min" id="min"> minutes and <input type="number" name="sec" id="sec"> seconds long.<br>
<input type="submit" value="Start" />
</form><br>

我还把这个东西放到了位于http://www.sfu.ca/~zla49/MMC/的托管服务上,所以,谢谢:)

1 个答案:

答案 0 :(得分:5)

表单上没有name

应该看起来像<form name="initiator" onsubmit="return initiator()">


如果您不想为表单命名,可能更有用的是将表单对象作为参数传递:

function initiate(form){
  var min = form["min"].value;
  var sec = form["sec"].value;
  // some logic
  return false;
}

<form onsubmit="return initiate(this)">
<!--... rest of your code ...-->